А есть вариант чтобы при написании 127.0.0.1:8000/api/v1/client
Он брал контроллеры из папки v1,v2, и т.д без создания доп. блоков которые вы указали выше ?
api_v1:
resource: ../../src/Http/Controller/Api/V1
prefix: /api/v1
name_prefix: api.v1.
trailing_slash_on_root: true
type: annotation
defaults:
_format: json
Ну, значит, я чего-то там с Doctrine недопонял)) что в общем, не удивительно - я просто клал данные в таблицы и доставал их оттуда)) и простые отношения, без всяких полиморфных наворотов))значит у Вас были простенькие проекты, в которых было мало бизнес-логики, мало изменений, разделений, рефакторинга. Любое изменение нейминга будет для вас мучительным. Любой инструмент надо подбирать под задачи. Если Вас это устраивает, то используйте это. Да хоть вообще на прямых подключениях через mysqli без всяких фреймворков.
imports:
- { resource: services/ }
src/Kernel.php
services:
_defaults:
autowire: true # Automatically injects dependencies in your services.
autoconfigure: true # Automatically registers your services as commands, event subscribers, etc.
App\AuthSystem\:
resource: '../../src/AuthSystem/'
exclude:
- '../../src/AuthSystem/Entity/'
App\AuthSystem\Entity\User\UserRepository: ~
doctrine:
dbal:
types:
auth_system_user_id: '\App\AuthSystem\Entity\User\IdType'
auth_system_user_alpina_user_id: '\App\AuthSystem\Entity\User\AlpinaUserIdType'
auth_system_user_token: '\App\AuthSystem\Entity\User\TokenType'
auth_system_user_role: '\App\AuthSystem\Entity\User\RoleType'
auth_system_user_alpina_role: '\App\AuthSystem\Entity\User\AlpinaRoleType'
orm:
mappings:
AuthSystem:
is_bundle: false
type: annotation
dir: '%kernel.project_dir%/src/AuthSystem/Entity'
prefix: 'App\AuthSystem\Entity'
alias: AuthSystem
docker/
bin/
config/
services/
order.yaml
migrations/
public/
index.php
src/
Http/
Api/
Auth/
Console/
Order/
WebMoney/
Client.php
Yandex/
Client.php
Cart/
Entity/
Cart.php
CartRepository.php
Infrastructure/
Cart/
Order/
Order/
Entity/
Kernel.php
templates/
order/
tests/
translations/
var/
vendor/
Поздравляю. Вы «на правильном» пути)
Значит ваш бандл простой, мало изменяется и такие же приложения. В серьёзном проекты вы бы получили массу проблем и багов. Это может пойти по разным путям. Где-то будут миграции мешать, где-то php72, а где-то уже php81 и т д. Если не встречались с проблемами - не значит что они не будут) Как я уже говорил - идеально вынести в отдельный сервис и взаимодействовать по api. Но тут уж сами решайте. Здесь точно такая же проблема, как с универсальной моделью, в которой у вас есть User с 50-100 полями в базе. Да, вы ничего не копируете, всё есть в User (и даже чего не надо), но такая запутанность даёт много проблем. Например, null поля. В разных контекстах этот же User может быть Автором, Покупателем, кладовщиком, поваром и т д. И все 50 полей распределятся по контекстам.