zaf*_*zaf 8 php development-environment production-environment autodiscovery
我们使用以下函数自动检测我们是在机器内部还是在实时服务器上,然后为各种组件选择适当的配置:
function devIsLocal(){
$res=false;
$http_host=$_SERVER['HTTP_HOST'];
if($http_host=='localhost')$res=true;
if($http_host=='127.0.0.1')$res=true;
if(substr($http_host,-4)=='.lan')$res=true;
if(strpos($http_host, '.')===false)$res=true;
return($res);
}
Run Code Online (Sandbox Code Playgroud)
如您所见,它仅依赖于HTTP_HOST值.
当然,如果您在本地使用某种类型的虚拟主机,例如example.com,那么该功能将被欺骗.
有没有其他方法来欺骗这个功能?还有哪些其他变量/地方可以用来确定我们的位置?
And*_*lam 15
在Apache虚拟主机配置中设置环境变量.这是Zend Framework实现它的方式.
有关示例,请参阅ZF快速入门指南("创建虚拟主机"部分.)
在httpd.conf或.htaccess文件中,输入:
SetEnv APPLICATION_ENV "development"
Run Code Online (Sandbox Code Playgroud)
然后在您的应用程序中,使用getenv函数来获取值:
$environment = getenv("APPLICATION_ENV");
if ($environment == "development")
{
// do development stuff
}
else if ($environment == "live")
{
// do live stuff
}
Run Code Online (Sandbox Code Playgroud)
fux*_*xia 11
'127.0.0.1' == $_SERVER["REMOTE_ADDR"]
Run Code Online (Sandbox Code Playgroud)
这永远不会像TRUE你的实时系统一样评估.:)
| 归档时间: |
|
| 查看次数: |
3615 次 |
| 最近记录: |