Пакеты не поощряются в Symfony 4, почему? А что их заменяет?

Практикуя Symfony 4.1, я заметил, что на странице пакетов написано: (https://symfony.com/doc/current/bundles.html)

В версиях Symfony до 4.0 рекомендовалось организовывать собственный код приложения с помощью пакетов. Это больше не рекомендуется, и пакеты следует использовать только для совместного использования кода и функций между несколькими приложениями.

Почему так и чем заменить бандлы? Просто создавать каталоги внутри одного пакета «Приложение»?

То есть простая вложенная папка заменяет пакет?


person Brent Heigold    schedule 21.07.2018    source источник
comment
Вплоть до S4 вам понадобится хотя бы один AppBundle, чтобы в полной мере воспользоваться преимуществами конфигурации Symfony. Благодаря некоторым довольно незначительным изменениям теперь вы можете выполнить большую часть своей конфигурации без пакета. В общем случае у вас по-прежнему будет пространство имен App, но ваши классы будут жить непосредственно в каталоге src. Посмотрите демонстрационное приложение для полного примера.   -  person Cerad    schedule 21.07.2018


Ответы (2)


Ответ на ваш вопрос написан внизу этой страницы здесь на symfony сайт. Подвести итоги

Но пакет должен быть чем-то, что можно повторно использовать как автономную часть программного обеспечения. Если UserBundle нельзя использовать как есть в других приложениях Symfony, тогда он не должен быть отдельным пакетом. Более того, если InvoiceBundle зависит от ProductBundle, то нет никаких преимуществ в наличии двух отдельных пакетов.

а потом

Не создавайте никаких пакетов для организации логики вашего приложения.

Приложения Symfony по-прежнему могут использовать сторонние пакеты (установленные в vendor/) для добавления функций, но вам следует использовать пространства имен PHP вместо пакетов для организации собственного кода.

Итак, чтобы ответить на ваш вопрос, простая подпапка заменяет пакет? Да! если это многократно используемый фрагмент кода, который может использоваться другими приложениями, сделайте его пакетом, в противном случае, если он предназначен только для организации приложения, используйте для этого папки (с пространствами имен).

person masoodahm    schedule 22.07.2018

вы можете увидеть демонстрационное приложение здесь -> https://github.com/symfony/demo

person Julien Ho    schedule 22.07.2018