есть настройка
$services = $container->services()
->defaults()
->autowire()
->autoconfigure();
Которая "подгружает" классы и прочее автоматически, тогда получается в этих настройках уже нет смысла?
$services->load('App\\', '../src/*')
->exclude('../src/{DependencyInjection,Entity,Enum,Tests,Kernel.php}');
$services->load('App\\Controller\\', '../src/Controller/*')
->tag('controller.service_arguments');
нужно же указать откуда эти сервисы подгружать, не весь же проект оно будет шерстить и каждый класс в сервисы грузить хотя вот это $services->load('App\\', '../src/*') ->exclude('../src/{DependencyInjection,Entity,Enum,Tests,Kernel.php}'); плохой ход, несмотря на exclude
Ну это не мой код, так по дефолту, пытаюсь понять что он делает и как)
Интересно послушать варианты, как сделать хорошо :)
Первая часть настраивает автоваринг, вторая лоадер (откуда и что грузить)
указав конкретную директорию )
Ну с учетом контекстов, что в каждом контексте еще есть то, что надо/не надо. То это будет овермного настроек по лоадингу, если прям "упороться". Поэтому интересна стратегия)
это не отменяет того, чтобы добавлять в exclude то, что исключить нужно, зачастую мы забываем исключить, но если мы получим сообщение о ненайденом сервисе - легко исправим
Кейс выше. Есть вот Context/Service/Тут 2 сервиса у каждого несколько DTOшек как ты бы прописала конфиг автовайринга?
и у меня дто лежат в одном дире с её сирвисом
Ок, кейс общий. Как ты делаешь, что dto у тебя в exclude?
не проблема, у Валентина прикольное решение с _di.php
Это решение просто разбиение di на контексты.
добавлю в exclude dto.php
Скинь плиз скрин.
Вот в эту `$services->load('App\\', '../src/*') ->exclude('../src/{DependencyInjection,Entity,Enum,Tests,Kernel.php}')` не получится вроде просто взять и прописать путь до dto отдельного
Обсуждают сегодня