我已经看到许多不同的命名方案和扩展用于基本上只是类的PHP文件。一些例子:我应该怎样命名我的PHP类文件?
- myClass.php
- myClass.class.php
- myClass.class
的区别是什么,以及哪个更好?
我已经看到许多不同的命名方案和扩展用于基本上只是类的PHP文件。一些例子:我应该怎样命名我的PHP类文件?
的区别是什么,以及哪个更好?
除了你所看到的没有什么区别。如果您使用autoloading并且没有您的课程文件所在的特定目录,.class
的帮助很有帮助。否则,这完全是任意的。 (我曾经使用ClassName.class.php
。)
我更喜欢MyClass.php - 与类完全相同的名称(包括首都)。
但是,如果您正在处理现有项目,则应该使用项目中的任何命名方案。
你的编码标准是什么?
以大写字母开头的类名很常见(例如: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是建议,而不是一个要求。
除非现有项目或平台上工作,我倾向于对一个文件的约定,如Zend的瘦肉:http://framework.zend.com/manual/en/coding-standard.naming-conventions.html
加上这意味着你可以像使用PHP代码嗅探器工具,以确保每个人都坚持到惯例。
无论哪种方式,一致性是游戏的名称。它使其他人(包括你自己几个月后)更容易加快代码库的速度。
感谢一个颤音......多数民众赞成在我所期待的 – johnnietheblack 2009-07-30 22:23:52
我秒... ClassName.class.php。 – 2009-07-30 22:34:06