我已经看到许多不同的命名方案和扩展用于PHP文件,基本上只是类。一些例子:
有什么区别,哪个更好?
答案 0 :(得分:43)
您的编码标准是什么?
以大写字母(例如:class MyClass
)启动类名是很常见的。如果您这样做,那么您将命名文件MyClass.php
。 MyClass.class.php
也有效。
MyClass.class
是一个坏主意,如果他们按名称请求该文件,则可能允许某人查看您的源代码。使用.php
扩展名可确保用户只能在PHP解释器处理文件后才能看到输出,对于只包含类的文件而言,该文件是空白页。
最后,请查看autoload()
,这样可以省去调用require_once
以加载课程的麻烦。
更新:使用PHP编码标准PSR-4,现在有一种半官方的方式来命名您的类文件。以前的建议 - 将您的类文件命名为与具有.php
扩展名的类相同 - 仍然有效。但是现在要将该类文件放在以类命名空间命名的子目录中; PSR-4要求所有类都包含在您定义的命名空间中。
你对此有什么看法?自动加载免费!如果您使用的是Composer,则可以specify the top-level directory for your classes和Composer自动加载它们。不再需要加载require
语句。
如果您不想这样做,则不必:PSR-4是推荐,而非要求。
答案 1 :(得分:40)
除了你所看到的之外没有任何区别。如果您使用autoloading并且没有您的类文件所在的特定目录,那么使用.class
的人会很有帮助。否则,它完全是武断的。 (我曾经使用ClassName.class.php
。)
答案 2 :(得分:5)
我更喜欢MyClass.php - 与班级完全相同的名称(包括大写字母)。
但是,如果您正在处理现有项目,则应使用项目具有的任何命名方案。
答案 3 :(得分:1)
除非在现有的项目或平台上工作,否则我倾向于倾向于一组记录在案的惯例,例如Zend:http://framework.zend.com/manual/en/coding-standard.naming-conventions.html
此外,这意味着您可以使用PHP Code Sniffer等工具来确保每个人都遵守惯例。
无论哪种方式,Consistency都是游戏的名称。这使得其他人(包括你自己几个月后)更容易掌握代码库。