Symfony2 カーネルが保持している情報について

簡易コードを書いて調べてみました。

use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;

class ShowConfigCommand extends ContainerAwareCommand
{
    protected function configure()
    {
        $this->setName('sample:show-config');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        $kernel = $this->getContainer()->get('kernel');
        $bundle = $kernel->getBundle('XxxxSampleBundle');

        print <<< BUF
kernel:
  env:      {$kernel->getEnvironment()}
  RootDir:  {$kernel->getRootDir()}
  CacheDir: {$kernel->getCacheDir()}
  LogDir:   {$kernel->getLogDir()}

bundle:
  Name:      {$bundle->getName()}
  Namespace: {$bundle->getNamespace()}
  Alias:     {$bundle->getContainerExtension()->getAlias()}

BUF;
    }
}

実行結果

$ php app/console sample:show-config
kernel:
  env:      dev
  RootDir:  .../app
  CacheDir: .../app/cache/dev
  LogDir:   .../app/logs

bundle:
  Name:      XxxxSampleBundle
  Namespace: Xxxx\SampleBundle
  Alias:     xxxx_sample