Я определил службу в моем MainBundle / MainFunctions /, а в контроллере я могу вызвать эту службу. Как теперь получить контейнер службы в SYMFONY 3.4 в шаблоне? Прочтите документы, что это больше не общедоступно.
#view/template.html.php
<?php $shop_id = $this->container->get('main_functions')->getSessionShopId(); ?>
Мой config.yml
imports:
- { resource: parameters.yml }
- { resource: security.yml }
- { resource: services.yml }
- { resource: "@FrontendMainBundle/Resources/config/services.yml
мой FrontendMainBundle / Resources / config / services.yml
services:
_defaults:
public: true
frontend_locale.locale_listener:
class: Frontend\MainBundle\EventListener\LocaleListener
arguments: ["%kernel.default_locale%"]
tags:
- { name: kernel.event_subscriber }
main_functions:
public: true
class: "%main_functions_class.class%"
arguments: ['@translator', '@doctrine.orm.entity_manager'....
Я читал документы, что это больше не публично. Но я не могу перейти к main_functions в шаблоне. Как?
БЛАГОДАРНОСТЬ!!!
На мой взгляд, использование локатора сервисов в шаблонах — плохая практика. Вместо этого вставляйте сервис main_functions в свой контроллер и передавайте в шаблоны только необходимые переменные. — person craphunter schedule 04.12.2017
