我们最近基于自编写的前端框架建立了一个项目,域名用于确定当前环境。 代码看起来像这样:
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);
}
答案 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
可能会向攻击者泄露大量非常敏感的信息,并且很容易导致您的应用受到攻击。