【发布时间】:2014-04-23 18:53:02
【问题描述】:
保存文件的最佳做法是什么
【问题讨论】:
-
如果它是一个 php 文件,我会使用任何扩展,但 php。
-
请告诉我你们在专业领域的最佳实践和推荐的方法
-
了解FIG标准:php-fig.org
-
使用
.php,.inc不安全
保存文件的最佳做法是什么
【问题讨论】:
.php,.inc 不安全
有一些 PHP 使用 .inc 的例子。它没有任何意义,它只是一个文件扩展名。如果文件被设计为包含在其他 PHP 文件中,则使用 .inc 扩展名命名文件是某些人的惯例,但这只是惯例。
它确实有一个可能的缺点,即服务器通常未配置为将 .inc 文件解析为 php,因此如果该文件位于您的 Web 根目录中并且您的服务器以默认方式配置,则用户可以查看您的 php .inc 文件中的源代码直接访问 URL 是不安全的。
它唯一可能的优点是很容易识别哪些文件被用作包含。虽然简单地给它们一个 .php 扩展名并将它们放在一个包含文件夹中具有相同的效果,但没有上述缺点。
【讨论】:
几乎所有 PHP 编码标准都要求类文件与类同名且以 .php 结尾。
class Test {
}
转到Test.php
命名空间或“伪命名空间”将被展平为文件夹。意义
// pseudo namespace
class Foo_Test {
}
或
// "real" namespace
namespace Foo;
class Test {
}
转到Foo/Test.php。
可以参考
由于历史原因,.inc 扩展仍然被部署。以前,有些人教导“保护” php 文件,这些文件旨在包含但不用于通过带有此扩展名的 url 调用。然后他们配置他们的 .htaccess 文件来拒绝对.inc 文件的请求。
我看到许多网络应用程序错过了保护的 .htaccess 部分,导致您可以通过浏览器获取源代码 (!)。
现代网络应用程序不这样做。整个源目录通常位于文档根目录下的文件夹中,因此无法访问,或者整个文件夹受 .htaccess 规则保护。可以通过浏览器访问的只有所谓的前端控制器。这更有意义。
【讨论】:
使用.php 扩展名!
使用.inc 或您需要在httpd.conf(in apache) 中更改的任何其他扩展,例如
AddType application/x-httpd-php .php
到
AddType application/x-httpd-php .php .inc
【讨论】:
永远不要将 .inc 用于 php 代码,因为这将允许其他人通过请求您的类文件来查看您的代码(可能还有配置、数据库凭据等)
您绝对应该阅读自动装载机的当前标准 PSR-4。它说明了构建代码的首选方式:
https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-examples.md https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader-meta.md https://github.com/php-fig/fig-standards/blob/master/accepted/PSR-4-autoloader.md
基本上,您总是将文件命名为命名空间和类,如下所示:
班级myThing 转到{prefix}/myThing.php
类myThing从命名空间Drawer转到{prefix}/Drawer/myThing.php
类 myThing 从命名空间 Room\Drawer 转到 {prefix}/Room/Drawer/myThing.php
等等
如果您想知道,prefix 是您保存类的目录,它可能是任何东西:您的项目目录、您的模块目录、一些 includes 目录等
【讨论】:
我认为一个好的做法是,如果您在代码中有一个名为“MyThing”的类,则使用该名称和单词“class”来命名它。比如:
class MyThing
{
}//END MYTHING
将在文件中:
/includes/MyThing.class.php
【讨论】: