Прежде чем начать, я бы предложил вам go в документации: Symfony Связки
Теперь перейдем к вашей проблеме: Если вы видите проект, созданный symfony , вы обнаружите, что контроллеры по умолчанию выставляются как сервисы, этого можно достичь, определив запись в файле services.yaml в config. Этот конфиг позволяет контроллерам выставлять себя в контейнер:
# controllers are imported separately to make sure services can be injected
# as action arguments even if you don't extend any base controller class
App\Controller\:
resource: '../src/Controller'
tags: ['controller.service_arguments']
Вы определяете пользовательский пакет, поэтому ваши контроллеры должны быть соответственно загружены и импортированы. Просто создайте ту же запись с надлежащими пространствами имен в конфигурации пакета, и она начнет распознавать классы контроллера и внедрить контейнер служб вместе с другими автоматически подключаемыми службами.
Редактировать: для частных пакетов вы можете использовать функции автоматической проводки, но Если вы создаете пакет, который может использоваться как сторонний пользователь, вы должны явно определить и пометить каждый контроллер и другие сервисы, чтобы минимизировать конфликты автопроводки. Это стандартная практика загрузки конфигурации пакета в основное приложение.
Подробнее об автоматической проводке
Подробнее о тегах обслуживания
Службы извлечения и зависимости контроллера