我想知道是否有可能在Symfony app.php
中定义多个环境?
的src /网络/ app.php:
$kernel = new AppKernel('benchmark', false);
$kernel = new AppKernel('benchmark,dev', false); // < Incl. the dev tools
为什么我问?这不是一个愚蠢的问题吗?因为默认的检查语法似乎支持多个环境in_array()
或者我在这里误解了什么?
的src /应用/ AppKernel.php:
if (in_array($this->getEnvironment(), array('dev'))) {
$bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
...
}
答案 0 :(得分:4)
app / AppKernel中的“check”用于检查您是否希望在多个环境中使用某些捆绑包,例如“test”或“dev”。
然后你可以在你的AppKernel中跟随以下几行:
if (in_array($this->getEnvironment(), array('dev', 'test'))) {
$bundles[] = new My\Bundle\Uber\MyUberBundle();
...
}
将在开发和测试环境中启用此示例包。
因此app.php不支持多个环境定义。如果你想要几个环境,你仍然可以将新文件定义为app.php和app_dev.php :)
例如,admin.php本身看起来像
<?php
use Symfony\Component\ClassLoader\ApcClassLoader;
use Symfony\Component\HttpFoundation\Request;
$loader = require_once __DIR__.'/../app/bootstrap.php.cache';
require_once __DIR__.'/../app/AppKernel.php';
$kernel = new AppKernel('admin', false);
$kernel->loadClassCache();
$request = Request::createFromGlobals();
$response = $kernel->handle($request);
$response->send();
$kernel->terminate($request, $response);