我的首选解决方案
有几种方法可以做到这一点,但最好的方法是通过一个简单的函数调用来简单地查找和替换$_SERVER [‘DOCUMENT_ROOT’]的所有用法.
所以你的例子将成为:
include(get_my_path() . '/Includes/Connect.php');
定义当前的运行模式:
define('RUN_MODE_PRODUCTION', true); // in live mode
define('RUN_MODE_PRODUCTION', false); // debug mode
现在为功能定义:
function get_my_path() {
if(RUN_MODE_PRODUCTION === true) {
return '/my/path/';
}
return '/my/other/path';
}
覆盖$_SERVER中的实际值是个坏主意.如果其他人后来参与该项目的工作,将不清楚发生了什么.
这是我每天在生产中使用的环境引导的非常简化的版本.
你不能做的地方
另一种方法可以做到
因为我无法使用上述任何一种方法覆盖$_SERVER [‘DOCUMENT_ROOT’],所以我必须在auto_prepend_file中执行此操作.
我不建议您使用此技术来解决此特定问题,因为在这种情况下,在应用程序级别更好地解决了这个问题.