如何加载依赖于域名的环境?

时间:2015-08-07 10:31:55

标签: symfony

我们最近基于自编写的前端框架建立了一个项目,域名用于确定当前环境。 代码看起来像这样:

switch($domain){
    case 'site.local':
         $env = "dev";
         break;
    case 'test.site.de':
         $env = 'test';
         break;
    case 'site.de':
         $env = 'prod';
}

我的问题是:如何在Symfony中完成? 仅仅加载依赖于域的AppKernel-instace就足够了吗? :

switch($domain){
    case 'site.local':
         $kernel = new AppKernel('dev', true);
         break;
    case 'test.site.de':
         $kernel = new AppKernel('test', true);
         break;
    case 'site.de':
         $kernel = new AppKernel('prod', true);
}

1 个答案:

答案 0 :(得分:4)

只需使用$_SERVER['HTTP_HOST']即可找到域名。之后,它非常简单明了。虽然,我不确定case default语法有效性。

$domain = $_SERVER['HTTP_HOST']
switch($domain){
    case 'site.local':
    case default:
         $env = "dev";
         break;
    case 'test.site.de':
         $env = 'test';
         break;
    case 'site.de':
         $env = 'prod';
}

!小心!

确保使用IP过滤器和/或身份验证保护您的dev / test环境。 dev可能会向攻击者泄露大量非常敏感的信息,并且很容易导致您的应用受到攻击。