对PHP类使用'.class.php'扩展名?

时间:2012-10-31 14:49:59

标签: php coding-style php-5.3

通常的做法是为PHP类附加使用'.class.php'扩展名吗?

在PHP.net上:http://php.net/manual/en/function.spl-autoload-register.php有一些这样的例子:

// Or, using an anonymous function as of PHP 5.3.0
spl_autoload_register(function ($class) {
    include 'classes/' . $class . '.class.php';
});

使用.class.php扩展名。

PHP代码应该像这样编写吗?我以前从未见过它,它是新的吗?这是PHP中的一种新功能,所以可能是它?

编辑:'功能'不是一个好词!也许我应该问这是一些标准还是惯例。

感谢。

8 个答案:

答案 0 :(得分:7)

这不是一个功能,它只是一个你不时会出现的惯例。是否遵循它是您和您的团队的选择。

我个人认为,由于选择是任意的,而且这种特殊的风格与你应该通过的PSR-0 autoloader specification相矛盾,因为:

  • PSR-0使用得更广泛,所以在其他条件相同的情况下,遵循更好的惯例
  • 遵循“.class.php”样式意味着无法使用符合PSR-0标准的自动加载器(在线有很多)并且无需修改即可使用

答案 1 :(得分:1)

这主要用于确保自动加载器所针对的类文件,你经常有其他.php文件,如模板,脚本,如bootstrapping或配置文件是.php文件,但不应该被解释为类

答案 2 :(得分:1)

这不是一个功能,它只是一种非常简单,实用的方法来保持代码的有序性,更重要的是,避免自动加载的问题。

假设您有一个名为User的课程,并且您的网站有一个页面,该页面由脚本生成:User.php。如果需要User类的实例,将调用自动加载器函数,并将User作为参数。在查找名为User.php的文件时,您可能包含一个文件,而不是类定义。这就是为什么你可以(而且应该)在他们的名字中给出一些额外的类定义。然后,您可以编写自动加载器以查找[[class name]].class.php,整齐地避开User.php文件。

这是它的底线。当然 - 还需要考虑名称空间,以及保持代码组织的最现代的方式:目录(set_include_path

答案 3 :(得分:0)

对于包含类的php文件,使用.class.php扩展名绝对不是必需的。但它也不会破坏任何东西。

答案 4 :(得分:0)

这是为了更好地理解这些文件的全部内容。所以,当你看到filename.class.php时,你知道,这个文件包含类文件名。

答案 5 :(得分:0)

如果您将类命名为class.php,则不会触发任何特殊语言支持;它只是一个约定,就像你是否使用空格或制表符进行缩进。

在我参与的其中一个项目中,名为* .inc.php和templates * .tpl.php的类。

答案 6 :(得分:0)

如果我在1999年左右编写php,这将是一个非常好的惯例。您可以根据需要命名文件,但我建议只在文件中的类名后面命名,并附加“.php”。

答案 7 :(得分:0)

这更多是个人偏好,但我实际上可能会研究PSR-0标准,这些标准为您提供了一种标准方法,可以为您的类命名和命名,以便以相同的格式提供与其他人代码的更好兼容性

在PSR-0标准中,PHP文件以类命名,并放入与命名空间相关的文件夹中。

我建议在PHP.net手册中提到的.class.php方法中采用这种方法。