Сервис шаблонов уже доступен в вашем комплекте.Вы можете извлечь его из контейнера:
$container->get('templating');
Вы должны получить доступ к сервису веток аналогичным образом:
$container->get('twig');
Остальная часть моего ответа использует службу шаблонов, но вы можете легкозамените его веткой, если вам действительно нужно.
Я думаю, что вам нужно передать службу шаблонов вашей службе уведомлений.
services:
notification:
class: Acme\NotificationBundle\Notification
arguments: [@templating]
Ваш класс Notification будет принимать шаблон в качестве параметра конструктора:
use Symfony\Bundle\TwigBundle\TwigEngine;
class Notification
{
/**
* @var Symfony\Bundle\TwigBundle\TwigEngine $templating
*/
private $templating = null;
/**
* @param Symfony\Bundle\TwigBundle\TwigEngine $templating
*
* @return null
*/
public function __construct(TwigEngine $templating)
{
$this->templating = $templating;
}
}
Вместо $notification->getNotification('Some notification message')->createView()
Я бы, вероятно, сделал $notification->createNotificationView('Some notification message')
.Я предполагаю, что уведомляющее сообщение является сущностью, и нет необходимости передавать шаблоны сущности.
Сопутствующая документация: Сервисы ссылок (инъекций)