@alexmixaylov

Как правильно сделать сервис для отправки почты используя Swiftmailer?

Хочу вынести отправку почты в отдельный сервис
создал класс
namespace AppBundle\Utils;

class SendOrder
{
    protected $twig;
    protected $mailer;

    public function __construct(\Twig_Environment $twig, \Swift_Mailer $mailer)
    {
        $this->twig = $twig;
        $this->mailer = $mailer;
    }

    public function sendOrderAction($book)
    {

        $body = $this->twig->render('AppBundle:Email:send_order.html.twig', array('name' => $book));

        $message = \Swift_Message::newInstance()
            ->setSubject('Hello Email')
            ->setFrom('send@example.com')
            ->setTo('xxx@gmail.com')
            ->setBody($body);

        $this->mailer->send($message);
    }
}

#services,yml
    app.sendorder:
        class: AppBundle\Utils\SendOrder


получаю ошибку
Catchable Fatal Error: Argument 1 passed to AppBundle\Utils\SendOrder::__construct() must be an instance of Twig_Environment, none given, called in
нужно прописать какой то аргумент в определении сервиса, но никак не могу разобраться какой
  • Вопрос задан
  • 357 просмотров
Пригласить эксперта
Ответы на вопрос 1
Austin_Powers
@Austin_Powers
Web developer (Symfony, Go, Vue.js)
У Вас в конструкторе два входных параметра. При регистрации сервиса вы не передаете ни одного.
Почитайте про arguments в сервисах. symfony.com/doc/current/service_container.html
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы