Symfony2 コマンドを作ってみる

src/.../xxxxBundle/Command/xxxxCommand.php ファイルを追加します。

<?php

namespace Example\UserRegistrationBundle\Command;

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('app:example:show-config');
        $this->setDescription('主要な設定値を表示します');
    }

    protected function execute(InputInterface $input, OutputInterface $output)
    {
        // 'database_connection' サービス経由で 'doctrine.dbal.default_connection' を利用
        $conn   = $this->getContainer()->get('database_connection');
        $mailer = $this->getContainer()->get('mailer');

        print <<< BUF
doctrine:dbal
  driver: {$conn->getDriver()->getName()}
  host:   {$conn->getHost()}
  dbname: {$conn->getDatabase()}
  user:   {$conn->getUsername()}

swiftmailer:transport
  host:    {$mailer->getTransport()->getHost()}
  timeout: {$mailer->getTransport()->getTimeout()}
BUF;
    }
}

実行してみます。

$ php app/console app:example:show-config

オッケー。