Я новичок в Symfony и запускаю приложение, которое включает в себя раздел администратора. Общий совет довольно очевиден — сделайте AdminBundle.
Тем не менее, это действительно лучшая практика? В документации Symfony говорится, что пакет должен быть «плагином», который можно распространять как есть и работать в другом приложении. Разве администраторский раздел не должен знать обо всех моделях и вещах основного приложения? Это административный раздел, созданный для управления изменениями, специально предназначенными для моего приложения, так как он будет распространяться или самодостаточен?
Я чувствую, что что-то упустил, потому что если весь совет состоит в создании AdminBundle, то я, очевидно, чего-то не понимаю или еще не углубился в Symfony.
Я просто хочу, чтобы мое приложение запустилось с правильной структурой.
К вашему сведению, я создал проект с AppBundle по умолчанию. Я просто планировал все сделать там, но это тоже не кажется правильным, так как будет сложнее организовать всю админку отдельно.
Я думаю, что это зависит от потребностей тура и размера вашего проекта. Создание специальной связки для размещения логики для панели администратора является хорошей практикой. Но если у вас небольшое приложение с несколькими объектами, создавать AdminBundle не обязательно.
Symfony обеспечивает вас любым удобным для вас способом. Вы можете создать пакет или поместить всю бизнес-логику панели администратора в специальный каталог внутри основного каталога контроллера пакета или поместить весь код в одни и те же контроллеры и управлять разрешениями на действия администратора путем настройки брандмауэра.
Я бы предложил использовать AdminBundle. Это позволяет вам поддерживать чистоту кода: клиентская логика в одном комплекте, логика администратора в другом.
В описании пакета, взятом из официальной документации Symfony, не сказано ничего противоположного. Потому что, если вы хотите, вы можете использовать свой AdminBundle в другом приложении. Bundle — это способ отделить бизнес-логику разных типов друг от друга.
Других решений пока нет …