пользовательская команда symfony2.6 с доктриной и swift

Попытка построить пользовательскую команду. Нужно получить какие-то записи из БД по Doctrine и отправить письмо по SwiftMailer. Используйте Symfony 2.6.1. У меня есть код:

namespace MyBundle\Console\Command;
use Symfony\Bundle\FrameworkBundle\Command\ContainerAwareCommand;
use Symfony\Component\Console\Input\InputInterface;
use Symfony\Component\Console\Output\OutputInterface;class Raport extends ContainerAwareCommand
{
protected function configure()
{
$this
->setName('raport:count-day')
->setDescription('test');
}

protected function execute(InputInterface $input, OutputInterface $output)
{
$em = $this->getContainer()->get('doctrine')->getManager();
$em->getRepository('My:Application')->findAll();
// $output->writeln($text);
}
}

Когда я запускаю команду в консоли raport: count-day всегда получает одну и ту же ошибку

PHP Fatal error:  Call to undefined method Symfony\Component\Console\Application::getKernel() in /var/www/auto/pzu-voucher/vendor/symfony/symfony/src/Symfony/Bundle/FrameworkBundle/Command/ContainerAwareCommand.php on line 42 ($this->container = $application->getKernel()->getContainer();)

кто-нибудь знает как это решить?

0

Решение

Я использовал пользовательское приложение для запуска команд, и здесь я сделал что-то не так. Мои команды работают правильно, когда я запускаю его через приложение / консоль

извиняюсь

1

Другие решения

Я думаю, вы должны следовать Командная документация :

Чтобы сделать консольные команды автоматически доступными с Symfony,
создать Каталог команд внутри вашего пакета и создайте файл PHP
с суффиксом Command.php для каждой команды, которую вы хотите предоставить.

Ваш класс также должен быть переименован в ReportCommand,

0

По вопросам рекламы [email protected]