我希望从Localhost过渡到Dev到East/West staging环境到生产,而无需更改PHP文件,但我不认为我的代码是正确的,它可能是我的速记,我是新的。
我希望做的是说,如果localhost那么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。