我应该如何命名我的PHP类文件?

时间:2009-07-30 22:17:51

标签: php class naming-conventions

我已经看到许多不同的命名方案和扩展用于PHP文件,基本上只是类。一些例子:

  1. myClass.php
  2. myClass.class.php
  3. myClass.class
  4. 有什么区别,哪个更好?

4 个答案:

答案 0 :(得分:43)

您的编码标准是什么?

以大写字母(例如:class MyClass)启动类名是很常见的。如果您这样做,那么您将命名文件MyClass.phpMyClass.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都是游戏的名称。这使得其他人(包括你自己几个月后)更容易掌握代码库。