Я работаю над легким DDD-приложением с Symfony 4. В своем файле services.yaml
я настроил автоматическое подключение следующим образом:
services:
# default configuration for services in *this* file
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
public: false # Allows optimizing the container by removing unused services; this also means
# fetching services directly from the container via $container->get() won't work.
# The best practice is to be explicit about your dependencies anyway.
# makes classes in src/ available to be used as services
# this creates a service per class whose id is the fully-qualified class name
App\:
resource: '../src/*'
exclude: '../src/{DataFixtures,Migrations,Tests,Domain/IceCream/IceCream.php,Domain/Cake/Cake.php,Domain/Candy/Candy.php}'
Я исключил все объекты, поскольку они не являются службами. Как вы могли заметить, я перечислил все соответствующие файлы, потому что, когда я печатаю:
exclude: '../src/{DataFixtures,Migrations,Tests,Domain}'
Возникло исключение времени выполнения: Cannot autowire service : "App\Application\Query\Cake\CakesQueryHandler": argument "$cakeRepository" of method "__construct()" references interface "App\Domain\Cake\CakeRepositoryInterface" but no such service exists. You should maybe alias this interface to the existing "App\Infrastructure\Doctrine\Repository\Cake\CakeRepository" service.
Первый сервис, который является обработчиком запросов, не подключен автоматически.
Как я могу исключить весь Домен без необходимости вводить все файлы в нем?
Спасибо за вашу помощь.