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 中的一种新功能,也许是这样?

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

谢谢。

4

7 回答 7

8

这不是一个功能,它只是一个你不时看到的约定。是否遵循它是您和您的团队的选择。

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

  • PSR-0 使用更广泛,因此在所有其他条件相同的情况下,遵循更好的约定
  • 遵循“.class.php”样式意味着不能采用符合 PSR-0 的自动加载器(网上有很多)并且无需修改即可使用它
于 2012-10-31T14:53:25.557 回答
1

这主要用于确保其为自动加载器目标的类文件,您通常有其他 .php 文件,如模板、脚本(如引导程序或配置文件)是 .php 文件,但绝不应被解释为类

于 2012-10-31T14:52:20.597 回答
1

它本身不是一个功能,它只是一种非常简单实用的方法,可以让您的代码保持井井有条,更重要的是,它可以避免自动加载问题。

假设您有一个名为 的类User,并且您的站点有一个页面,该页面由脚本生成:User.php。如果您需要User该类的实例,将调用自动加载器函数,并将其User作为参数获取。在查找简单称为 的文件时User.php,您可能会包含一个文件,而不是类定义。这就是为什么你可以(并且应该)在类名中多加一点类定义的原因。然后你可以写你的自动加载器来寻找[[class name]].class.php,巧妙地避开User.php文件。

这就是它的底线。当然,还需要考虑命名空间,这是保持代码井井有条的最现代方式:目录 ( set_include_path)

于 2012-10-31T14:57:33.217 回答
0

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

于 2012-10-31T14:53:34.247 回答
0

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

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

于 2012-10-31T14:53:46.667 回答
0

如果我在 1999 年左右编写 php,这将是一个很好的惯例。您可以随意命名文件,但我建议仅在文件内的类名之后命名它们,并附加“.php”。

于 2012-10-31T14:56:16.533 回答
0

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

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

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

于 2012-10-31T14:56:16.807 回答