通常的做法是为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中的一种新功能,所以可能是它?
编辑:'功能'不是一个好词!也许我应该问这是一些标准还是惯例。
感谢。
答案 0 :(得分:7)
这不是一个功能,它只是一个你不时会出现的惯例。是否遵循它是您和您的团队的选择。
我个人认为,由于选择是任意的,而且这种特殊的风格与你应该通过的PSR-0 autoloader specification相矛盾,因为:
答案 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
方法中采用这种方法。