我希望从本地主机过渡到开发环境,再到东/西登台环境,再到生产环境,而无需更改 PHP 文件,但我认为我的代码不正确,这可能是我的简写,我是新手对此。
我希望做的是,if localhost then else if dev, else if staging east, else if staging west, else if production。也许有更好的方法来做到这一点?
如果有帮助的话,我在开发/登台/生产中使用 Apache 作为本地主机和 Azure,我会使用两者,但我无权访问 Azure。
<?php
$thisPage = "navigation";
define('URL_ROOT',
getenv('DEV_SERVER') ?
'http://localhost/Site/' :
'dev.website.net' :
'http://website-east.website.net/' :
'http://website-west.website.net/' :
'http://production-website.com/'
);
?>
最佳答案
根据我们上面的评论,您可以:
switch(strtolower(getenv('DEV_SERVER')))
{
case 'localhost':
define('URL_ROOT', 'http://localhost/Site/');
break;
case 'dev':
define('URL_ROOT', 'dev.website.net');
break;
case 'east':
define('URL_ROOT', 'http://website-east.website.net/');
break;
case 'west':
define('URL_ROOT', 'http://website-west.website.net/');
break;
case 'prod':
define('URL_ROOT', 'http://production-website.com/');
break;
default:
die('Environment not defined!!');
}
如果可以的话,我建议设置一个通用环境变量名称,例如 getenv('SERVER_ENVIRONMENT')
并在 switch()
中使用它,因为 DEV_SERVER
意味着它只是 T/F,除 dev 之外的每个服务器都将设置为 F。
关于php - PHP 环境变量简写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32354426/