Как настроить сериализатор Symfony через конфигурацию DI контейнера в YAML файле для улучшения структуры кода?
Для начала необходимо установить бандл JMS Serializer Bundle, если он еще не установлен: ```bash composer require jms/serializer-bundle ``` Затем откройте файл `config/packages/jms_serializer.yaml` и добавьте следующую конфигурацию: ```yaml jms_serializer: metadata: auto_detection: true directories: App: namespace_prefix: "App" path: "%kernel.project_dir%/src/Entity" ``` Этот фрагмент конфигурации указывает сериализатору на автоматическое обнаружение метаданных сущностей в директории `src/Entity` вашего проекта. Теперь вы можете использовать сериализатор в своих контроллерах или сервисах. Например, в контроллере: ```php use JMS\Serializer\SerializerInterface; use Symfony\Component\HttpFoundation\Response; class MyController extends AbstractController { public function serializeData(SerializerInterface $serializer) { $data = ['foo' => 'bar']; $serializedData = $serializer->serialize($data, 'json'); return new Response($serializedData); } } ``` Теперь сериализатор настроен и готов к использованию в вашем проекте.
Походу сам ответил на свой вопрос, хотя до того как опубликовал часа 2 сидел пытался понять в чем проблема. Нужно типа в конфиге определять как именно сервисы те классы, к которым ты будешь обращаться по ссылке
Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer: class: Symfony\Component\Serializer\Normalizer\BackedEnumNormalizer Symfony\Component\Serializer\Normalizer\ArrayDenormalizer: class: Symfony\Component\Serializer\Normalizer\ArrayDenormalizer Symfony\Component\Serializer\Encoder\JsonEncoder: class: Symfony\Component\Serializer\Encoder\JsonEncoder
На мой взгляд конечно не понятно. Почему нельзя сразу передавать как аргумент просто имя класса и все, пусть там делает что хочет дальше. Наверно просто я не копался в нутряное особо и не вкуривал этот момент, надо будет разобраться.