我刚刚编写并测试了我的第一个非爱好的WordPress插件,在Windows 7的Xampp下,使用PHP 5.3.8,并将其部署到我的博客主机,这也是一个Windows环境,但我不知道什么。
我的第一个惊喜是我无法做到让require_once
中的相对路径工作,所以我已经切换了一些使用绝对路径的调用 - 禁用了URL文件访问 - 但我想要楔入一个层这里是抽象的。
我如何包装require_once
以集中决定如何将路径构建到一个位置,例如构建路径的my_require_once
,然后将源路径中的源注入解释队列或其他任何内容。我是否应该考虑这个?
我知道我可以将路径确定封装到一个函数中,并在require
的path参数中使用该函数,但我希望能够“破坏”现有的require
调用。
答案 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。