是否可以在PHP中编写'require_once'等替换?

时间:2011-12-20 17:34:07

标签: php

我刚刚编写并测试了我的第一个非爱好的WordPress插件,在Windows 7的Xampp下,使用PHP 5.3.8,并将其部署到我的博客主机,这也是一个Windows环境,但我不知道什么。

我的第一个惊喜是我无法做到让require_once中的相对路径工作,所以我已经切换了一些使用绝对路径的调用 - 禁用了URL文件访问 - 但我想要楔入一个层这里是抽象的。

我如何包装require_once以集中决定如何将路径构建到一个位置,例如构建路径的my_require_once,然后将源路径中的源注入解释队列或其他任何内容。我是否应该考虑这个?

我知道我可以将路径确定封装到一个函数中,并在require的path参数中使用该函数,但我希望能够“破坏”现有的require调用。

2 个答案:

答案 0 :(得分:2)

在配置文件中定义基本URL,并在require_once语句中附加相对路径:

require_once(BASE_URI . '/myfolder/myfile.php');

答案 1 :(得分:1)

除非您想以更复杂的方式操纵相对路径,而不是仅仅尝试添加一些绝对路径,set_include_path应该是您需要的一切。不要忘记追加现有路径:

set_include_path(implode(PATH_SEPARATOR, $your_folders).PATH_SEPARATOR.get_include_path());

这对所有后续的include / require / _once都有影响,但不影响任何其他文件函数。您还应检查WordPress是否已经执行此操作,它本身可能有设置路径的设置。

回答你的问题,不,不可能覆盖require_once。但是,您可以使用spl_autoload_register并完全避免使用require_once。