在PHP中包含类的最佳实践

时间:2014-04-23 18:53:03

标签: php oop

如果我将该文件保存为phpmyClass.php

,保存文件的最佳做法是什么,我将包含在我的其他myClass.inc文件中

5 个答案:

答案 0 :(得分:3)

几乎所有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个文件的请求。

我见过许多Web应用程序错过了该保护的.htaccess部分,导致您可以通过浏览器获取源代码(!)。

现代网络应用程序不这样做。整个源目录通常位于文档根目录下的文件夹中,因此无法访问,或者整个文件夹受.htaccess规则保护。通过浏览器访问只是所谓的前端控制器。这更有意义。

答案 1 :(得分:3)

有一些PHP使用.inc的例子。它没有任何意义,它只是一个文件扩展名。如果该文件被设计为包含在其他PHP文件中,那么命名具有.inc扩展名的文件是一些人的惯例,但它只是惯例。

它确实有一个可能的缺点,即服务器通常没有配置为将.inc文件解析为php,所以如果文件位于你的web根目录中并且你的服务器是以默认方式配置的,那么用户可以查看你的php通过直接访问URL确认.inc文件中的源代码是不安全的。

唯一可能的优点是很容易识别哪些文件被用作包含。虽然简单地给它们一个.php扩展名并将它们放在一个包含文件夹中但具有相同的效果而没有上面提到的缺点。

字体:What is .inc and why to use it?

答案 2 :(得分:1)

使用.php扩展程序! 使用.inc或您需要在httpd.conf(在apache中)更改的任何其他扩展程序,如

AddType application/x-httpd-php .php

AddType application/x-httpd-php .php .inc

答案 3 :(得分:1)

永远不要将.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目录等

答案 4 :(得分:0)

我认为一个好的做法是,如果您在代码中有一个名为“MyThing”的类,使用该名称命名,并使用“class”这个词。例如:

class MyThing
{


}//END MYTHING

将在文件中:

/includes/MyThing.class.php