PHP环境变量简写


Shorthand PHP Environment Variables

我希望从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。