PHP包含文件的扩展名最佳实践

7

首先,我承认我对这些事情很挑剔。(我真是个坏蛋。)然而,我想知道在命名PHP包含文件方面,什么是最佳实践。

作为基本情况,我将保留.php作为最终扩展名(以帮助防止获取未解析的文件),但为了区分前端文件和包含文件,我要么:

  1. 将所有包含文件的名称命名为XXX.inc.php

  2. 将通用(非类)文件命名为上述方式,将类定义命名为ClassName.class.php(可能有助于将来的自动加载器使用,尽管我不太喜欢自动加载器。)

我目前倾向于选项2,但我想知道是否有其他建议或您推荐的建议。

2个回答

7
首先,我完全同意您的观点,即所有PHP文件都应该以".php"作为最终扩展名;有两个原因:
- 正如您所说,它有助于防止未解析的文件被获取。 - 它还有助于基于文件名进行语法着色的IDE /编辑器:您不必将“.inc”配置为PHP文件。
虽然有时会有例外情况;主要原因是当我使用工具(CMS、框架、库等)时,它们对文件命名有一些规则:即使我不喜欢这些规则,我也倾向于遵循它们。
例如:
- 在Drupal中,我使用“.inc”、“。module”、“.install”等。 - 在Zend Framework中,我为视图脚本(HTML+PHP)使用“.phtml”。
对于包含类的文件,我不喜欢“.class.php”:我认为这有点多余;我倾向于使用“MyClassName.php”,并将其用于自动加载。 (顺便说一句,这就是像Zend Framework或Doctrine ORM这样的框架推荐的方法)
顺带提一下:您说您不太喜欢自动加载程序;为什么? 我尽可能多地使用它们:
- 通常更好的性能:只加载/解析您真正使用的代码。 - 较少的编写代码(无需“require”/“include”)。

我通常不喜欢使用自动加载器,因为它们没有手动包含那么显眼。在我看来,这有点类似于变量的明确声明。话虽如此,我意识到这是事情发展的趋势,并且这种资源开销在现今几乎是无关紧要的。 - John Parker
我们都认同一件事:它不像手动包含那样明确 :-) (至少在编写代码时已知类名) - Pascal MARTIN
我知道这是一篇旧帖子,但是现在有了接口和特征,你会怎么做呢?因为在你的文件 ClassName.php 中,InterfaceName.phpTraitName.php 都将以实际名称相同的方式呈现。 - CJ Dennis

6

我使用ClassName.class.php来表示类文件,使用SomeDescription.lib.php来表示非类文件。

不喜欢使用.inc.php。以文件的导入方式来描述文件,似乎与其内容不符。


我通常使用 .inc 文件来包含静态 HTML。所以,login.inc - Tyler Carter
1
如果你看看现有的许多框架,如果你有一个类的文件夹,就不需要在里面放一个 .class.php 文件。另一方面,如果你只有一个包含所有文件的 "app" 文件夹,那么也许需要考虑重新设计你的文件夹结构。 - Garrett
1
喜欢.lib.php的想法,完全同意不使用XXX.inc.php背后的原理 - 这可能就是为什么它对我来说感觉不太“正确”的原因。 - John Parker
2
@Garret 我更喜欢使用 .class.php 扩展名,无论文件夹结构如何。这样更加明确无误。 - Iain Collins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接