Пакет Symfony — это набор файлов и папок, организованных в определенной структуре. Пакеты моделируются таким образом, чтобы их можно было повторно использовать в нескольких приложениях. Само основное приложение упаковано в пакет и обычно называется AppBundle .
Пакет может быть упакован специально для приложения, такого как AdminBundle (раздел администратора), BlogBundle (блог сайта) и т. Д. Такие пакеты не могут совместно использоваться приложением. Вместо этого мы можем смоделировать определенную часть приложения, такую как блоги, как универсальный пакет, так что мы можем просто скопировать пакет из одного приложения в другое приложение для повторного использования функциональности блога.
Структура расслоения
Основная структура пучка заключается в следующем.
-
Контроллер — Все контроллеры должны быть размещены здесь.
-
DependencyInjection — Здесь необходимо разместить весь код и конфигурацию, связанные с внедрением зависимостей.
-
Resources / config — конфигурации, связанные с пакетом, находятся здесь.
-
Ресурсы / Представление — Связанные шаблоны представления помещены здесь.
-
Ресурсы / общедоступные — здесь размещены связанные с пакетом таблицы стилей, скрипты Java, изображения и т. Д.
-
Тесты — файлы связанных с модулем тестов находятся здесь.
Контроллер — Все контроллеры должны быть размещены здесь.
DependencyInjection — Здесь необходимо разместить весь код и конфигурацию, связанные с внедрением зависимостей.
Resources / config — конфигурации, связанные с пакетом, находятся здесь.
Ресурсы / Представление — Связанные шаблоны представления помещены здесь.
Ресурсы / общедоступные — здесь размещены связанные с пакетом таблицы стилей, скрипты Java, изображения и т. Д.
Тесты — файлы связанных с модулем тестов находятся здесь.
Создание пакета
Давайте создадим простой пакет TutorialspointDemoBundle в нашем приложении HelloWorld .
Шаг 1 — Выберите пространство имен. Пространство имен пакета должно включать имя поставщика и имя пакета. В нашем случае это Tutorialspoint \ DemoBundle .
Шаг 2 — Создайте пустой класс, TutorialspointDemoBundle , расширив класс Bundle и поместите его в каталог src / Tutorialspoint / DemoBundle .
namespace Tutorialspoint\DemoBundle; use Symfony\Component\HttpKernel\Bundle\Bundle; class TutorialspointDemoBundle extends Bundle { }
Шаг 3 — Зарегистрируйте класс в списке пакетов, поддерживаемых приложением в классе AppKernel .
public function registerBundles() { $bundles = array( // ... // register your bundle new Tutorialspoint\DemoBundle\TutorialspointDemoBundle(), ); return $bundles; }
Это все, что нужно для создания пустого пакета, а все остальные понятия такие же, как и у приложения. Symfony также предоставляет консольную команду generate: bundle для упрощения процесса создания нового пакета, который заключается в следующем.