Symfony2多个环境

时间:2013-12-06 16:29:58

标签: php arrays symfony

我想知道是否有可能在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();
            ...
}

1 个答案:

答案 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);