Вы запросили несуществующий сервис jms_serializer

Я пытаюсь использовать JMSSerializerBundle, но службы нет в списке после запуска app/console container:debug | grep jms_serializer

$ app/console container:debug | grep jms_serializer
jms_serializer.json_deserialization_visitor   container JMS\SerializerBundle\Serializer\JsonDeserializationVisit
jms_serializer.json_serialization_visitor     container JMS\SerializerBundle\Serializer\JsonSerializationVisitor
jms_serializer.metadata.lazy_loading_driver   container Metadata\Driver\LazyLoadingDriver
jms_serializer.metadata_driver                container Metadata\Driver\DriverChain
jms_serializer.naming_strategy                container JMS\SerializerBundle\Serializer\Naming\CacheNamingStrate
jms_serializer.xml_deserialization_visitor    container JMS\SerializerBundle\Serializer\XmlDeserializationVisito
jms_serializer.xml_serialization_visitor      container JMS\SerializerBundle\Serializer\XmlSerializationVisitor
jms_serializer.yaml_serialization_visitor     container JMS\SerializerBundle\Serializer\YamlSerializationVisitor

после установки

composer require jms/serializer-bundle

и настроить

// in AppKernel::registerBundles()
$bundles = array(
    // ...
    new JMS\SerializerBundle\JMSSerializerBundle($this),
    // ...
);

если ты используешь в каком-то месте

$this->get('jms_serializer')

получаю ошибку You have requested a non-existent service "jms_serializer".

Как я могу это исправить?


person rkmax    schedule 18.02.2013    source источник


Ответы (2)


Имя службы — сериализатор. Вы должны просто использовать следующее.

$this->get('serializer');
person P. R. Ribeiro    schedule 19.02.2013
comment
serializer — это просто псевдоним для jms_serializer, что хорошо видно при запуске bin/console debug:container | grep serializer. - person qwertz; 10.07.2016

Пакет был установлен, но не включен автоматически в bundles.php. Приходилось включать вручную.

Включение JMSSerializerBundle:

JMS\SerializerBundle\JMSSerializerBundle::class => ['all' => true],

Доступ к сервису:

$serializer = $this->container->get('jms_serializer');

Симфония 4.4

person Leuss    schedule 03.11.2020