繁体   English   中英

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

[英]Use '.class.php' extension for PHP classes?

通常的做法是为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中的一种新功能,也许它是?

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

谢谢。

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

我个人的意见是,由于选择是任意的,这种特殊的风格与PSR-0自动加载器规范相矛盾,你应该通过,因为:

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

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

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

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

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

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

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

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

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

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

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

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM