В Symfony простое консольное приложение, как добавить такие сервисы, как ORM, ODM, MailSender

1

Я хочу, чтобы мои сервисы, такие как ORM, ODM, MailSender и т.д.... в моем консольном приложении в symfony.

Я использовал этот учебник:

http://symfony.com/doc/current/cookbook/console/commands_as_services.html

Но у меня есть ошибка.

vagrant@vagrant-debian-wheezy:~/www/aaaa/jocker$ php app/console      
  [Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException]                                  
  The service "app.command.greet_command" has a dependency on a non-existent parameter "command.default_name".  

Вопрос:

  1. Как я могу использовать консольное приложение со всеми сервисами, установленными в приложении Symfony (приложение Symfony на основе HTTP с использованием MVC)
  2. Можно ли запустить действие с помощью php cli в symfony?

Простое и мощное использование консоли и HTTP с использованием одного и того же шаблона с другой средой.

http://framework.zend.com/manual/current/en/modules/zend.console.introduction.html

  • 0
    Да и да. По какой-то причине вы пытаетесь ввести параметр command.default_name без его определения.
Теги:
command-line-interface

1 ответ

2

Во-первых, вам не нужно определять свою команду как услугу только для получения других сервисов - вам просто нужно убедиться, что ваша команда получена из ContainerAwareCommand

Это может устранить недостающее исключение параметра. Если нет, обратите внимание, что app/console обычно пытается использовать среду "dev", если не переопределить переменную окружения, поэтому убедитесь, что все параметры загружены dev включают отсутствующий параметр command.default_name

Также возможно установить параметры через переменные среды, в этом случае вы можете установить SYMFONY__COMMAND__DEFAULT_NAME чтобы предоставить это значение параметра.

Что касается вызова действия контроллера из командной консоли, то вы можете сделать это действие, которое вы можете вызвать как из HTTP-контроллера, так и с помощью команды консоли CLI.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню