@okkkman

Своя иерархия папок в Symfony?

Здравствуйте.

Хочу реализовать свою иерархию файлов:

src/
-- Migration/
-- Controller/
-- Entity/
-- EventSubscriber/
-- Module/
--- User/
---- Entity/
---- Dto/
---- Repository/
---- Controller/
---- Service/
---- etc.


Не могу понять, как решить три проблемы::
  1. Чтобы все файлы миграций хранились в /src/Migration, а не /migrations?
  2. Чтобы работали аннотации роутов и Doctrine (ну и в будущем Swagger) не только в /src/Controller и /src/Entity, но и с вложенностью папок (/src/Module/User/Controller, /src/Module/User/Entity)?
  3. Реально ли сделать так, чтобы при создании Entity или Controller через консоль (н-р, php bin/console make:entity) можно было бы указать путь?
  • Вопрос задан
  • 206 просмотров
Решения вопроса 2
BoShurik
@BoShurik Куратор тега Symfony
Symfony developer
1. https://github.com/symfony/recipes/blob/master/doc...
Но идея плохая, т.к. миграции - это не код.
2. Можно при конфигурировании контейнера и роутов в Kernel.php разбирать структуру папок и подключать все динамически там.
3. Нет. Как создать entity не по стандартному пути?

FYI, моя структура папок сейчас выглядит так:
migrations/
src/
-- Controller/
---- User/
---- ModuleName/
-- Entity/
---- User/
---- ModuleName/
-- User/
--- Dto/
--- Repository/
--- Service/
-- ModuleName/
--- Dto/
--- Repository/
--- Service/

Во-первых, нет заморочек с конфигурированием, во-вторых, если первый раз включаешься в проект, то идеально сразу видеть набор сущностей и контроллеры, а не бегать по папкам модулей в их поисках, плюс контроллеры часто сложно отнести к какому-то конкретному модулю.
Ответ написан
glaphire
@glaphire
PHP developer
3. Путь можно указывать в настройках maker bundle, сразу в командной строке - нет https://symfony.com/doc/current/bundles/SymfonyMak...
2. Разве аннотации привязаны к неймспейсу? Главное ведь их импортировать в нужном классе. Проблемы могут быть разве что со сваггером ( наверняка его тоже можно донастроить)
1. Нужно указать дополнительные пути для считывания миграций в конфигах https://symfony.com/doc/master/bundles/DoctrineMig...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы