有没有办法将一组php类嵌入到php中,这样我就可以本身调用而不是每次都将这些类作为文件包括在内?我需要在本地使用它或在私有服务器上。
提前致谢:)
答案 0 :(得分:6)
如果我理解正确,您可能想要使用__autoload()。
来自@ KingCrunch的注释:
__autoload()函数不应该 再使用,因为如果你使用 其他库,定义一个 spl-loader,该函数永远不会调用 从那以后
所以如果坚持SPL Autoload functions会更好。
答案 1 :(得分:1)
对于懒惰,您可以使用php.ini设置:
auto_prepend_file = /usr/share/php/allmypredefinedclasses.php
在运行任何脚本之前包含auto_prepend_file
。听起来这就是你想要的。它可以很好地定义类或函数,或者只是一个自动加载器。但是你应该避免将它用于过度项目特定的功能 - 因为它会影响所有 PHP脚本。
(我个人用它来蹒跚学习一些PHP6功能..)
答案 2 :(得分:0)
只需添加php.ini的路径,它们将始终在该服务器上可用
答案 3 :(得分:0)
将没有<?php
和?>
的每个文件的内容复制到文件classes.inc.php
中,只包含此文件。
[编辑] 我不认为你需要这么多性能,因为PHP已经很快了。但是如果你真的将每个类文件都包含在每个文件中,有时只需要其中一个类,那么这不是一个坏主意。
为什么不将课程分成模块:
例如:DatabaseModule database.module.php
包含类connection
,queries
,results
将所有类放在这样的组中,并将它们移到目录modules/
您可以使用自定义函数,这里有一个简单的例子:
<?php
function loadModule($name) {
$file_path = './modules/' . $name . '.module.php';
require_once $file_path;
}
?>
现在,您可以使用loadModule
函数在每个文件中添加所需的所有模块。
我希望能帮助你。
答案 4 :(得分:0)
如果您使用的是MVC模式,例如,每次请求都会调用index.php页面,那么__autoload将是一个很好的解决方案。如果没有你可以使用'auto_prepend_file',如前所述。
希望有所帮助。