knp-snappy-bundle имеет частный сервис

После обновления с Symfony 2.2 до Symfony 3.4 я получаю ошибку

Сервис или псевдоним knp_snappy.pdf был удален или добавлен
контейнер был скомпилирован. Вы должны либо сделать это публичным, либо прекратить
использовать контейнер напрямую и использовать вместо этого внедрение зависимостей.

config.yml

knp_snappy:
pdf:
enabled: true
binary:  '%knp_snappy_pdf_binary%'
options: []

в действии контроллера:

$html = $this->renderView(
'FsaBundle:Registration:registrationEmail.html.twig', ['data' => $data]
);

$pdf = $this->get('knp_snappy.pdf')->getOutputFromHtml($html);
...

Как сделать knp_snappy.pdf общественности?

-1

Решение

Обновить KnpSnappyBundle в 1.5.2: они сделали это для вас.
Если вы переопределяете сервис (который должен быть бесполезным), поставьте public: true в определении.

Кроме того, поставить ^1.5 как версия в composer.json чтобы получить все совместимые обновления (< 2) этого пакета (и я бы рекомендовал делать это для каждого стороннего кода, который следует за семантическое управление версиями) во время composer update

Если вы хотите узнать больше о композиторе и его ограничениях, ознакомьтесь с ^ (каретная) документация.

0

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

Других решений пока нет …

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