Рет қаралды 1,591
Сегодня разберем на примере как сделать bundle для симфони
И кратко разберем когда нужно выносить код в бандл а когда нет
1. Создадим новый проект симфони и убедимся что сервер работает
2. Перейдем на сайт симфони в документацию для ознакомления
3. Настройка composer
3.1 Создаём папку bundle
3.2 В bundle Создаем папку Elenyum и в ней HelloBundle
3.3 В папке HelloBundle добавляем файл composer.json
3.4 В конфиге указываем имя, версию, тип, описание, лицензия, зависимость от версии php, в я указал сортировку по имени это не обязательно
в autoload добавляем автозагрузчик по стандарту psr-4 и задаём namespace в моём случае Elenyum\HelloBundle для тестов Elenyum\HelloBundle\Test (на видео не правильно указал имя для тестов)
4. В src создадим класс ElenyumHelloBundle который будет находится в пространстве имен Elenyum/HelloBundle и наследоваться от AbstractBundle
4.1 В классе определим функцию getPutch для корректной подгрузки конфигов
4.2 В src создадим папку Controller в ней создаём IndexController который наследуется от AbstractController
4.3 Так-как в контроллере будет только один метод создадим invoke в котором вернём Responce в формате json с ответом
4.4 В аттрибутах Указываем корректный роут и имя
Когда мы создаём приложения на симфон сервисы и зависимости в контроллер подгружаются автоматически но зависимости bundle авьтоматически не подгрузятся их необходимо прописывать явно в настройках. И для того что бы наш роут работал создадим для него конфиг routes.yaml в котором укажим где находятся наши роуты
5 Создаем service.yaml
5.1 parametrs оставляем пустым
в services defaults можно просто скопировать
5.2 Явно подгружаем наш контроллер
6 Подключам bundle
7 Настраиваем роуты
Ссылка на проект:
github.com/web...