Symfony 6 Создание своего bundle

  Рет қаралды 1,591

WEB men

WEB men

Күн бұрын

Сегодня разберем на примере как сделать 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...

Пікірлер: 7
@cr3wcabanger
@cr3wcabanger 2 жыл бұрын
Видео полезное и интересно, спасибо) На будущее: пач => patch, а path - это пас(с "мягкой" буквой "С" в конце)
@bootta
@bootta 2 жыл бұрын
Спасибо!)
@ЗелёныйБен
@ЗелёныйБен Жыл бұрын
Да, я такой услышал patch, написал и понять не мог почему ошибка
@Tavda
@Tavda 7 ай бұрын
DependencyInjection можно не создавать. Можно добавить метод loadExtension в класс бандла. Есть в документации. А ещё в репозитории есть моменты, которые у меня не заработали, но я нашёл в документации как сделать так, чтобы работало. В целом, у меня получилось. Контроллеры заработали (конечно при правильной настройке основного проекта). Если кому-то интересно, могу дать ссылку на код того бандла, с которым я экспериментировал. Но там много сторонней логики. Ну и сейчас я допиливал уже на Symfony 7.1. Хотя изначально не доделано полноценно у меня было на 6.4.
@AlexD-lc2nx
@AlexD-lc2nx Жыл бұрын
в 6 симвони бандл может наследоваться от Бандл и АбстрактБандл. В Бандл метод гетЭестеншн резолвит класс экстеншена по имени, в АбстрактБандл - нет, поэтому работает через return new MyExtention()
@mirosh1257
@mirosh1257 2 жыл бұрын
Интересно, никогда не задумался о бандлах. Я вообще ларавел пользуюсь, но концепция бандлов для переиспользования очень инетересно чтобы убрать рутинную работу
@mihaylo47
@mihaylo47 Жыл бұрын
Порог вхождения для видоса высок, скорость изменения происходящего заставляет часто ставить на паузу и не хватает комментариев на каждом этапе откуда берется то или иное имя, произвольное оно или зависит от чего-то указанного ранее (с чем-то должно совпадать) и т.д.
Чистая Архитектура (Onion + Modular Monolith + Hexagonal)  | Symfony PHP
11:58
Александр Яковлев - PHP
Рет қаралды 13 М.
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН
Chain Game Strong ⛓️
00:21
Anwar Jibawi
Рет қаралды 41 МЛН
Трамп разогнал ЦРУ, а те "слили" имена
19:01
The Breakfast Show
Рет қаралды 151 М.
Create a Symfony 6.2 Bundle and upload it to Packagist
9:56
Mustafa Özyurt
Рет қаралды 2,6 М.
№4, 5 | Теория вероятностей | ЕГЭ 2024 по профильной математике
1:34:23
Школково ЕГЭ, ОГЭ, олимпиады
Рет қаралды 381 М.
Азы программирования в 1С за 3 часа
3:46:49
IRONSKILLS - Курсы по 1С
Рет қаралды 3,8 МЛН
Учим Python за 1 час! #От Профессионала
59:01
Хауди Хо™ - Просто о мире IT!
Рет қаралды 10 МЛН
PHP & Symfony: service locator, сервис локатор
9:43
Андрей Шестаков
Рет қаралды 1 М.
Каха и дочка
00:28
К-Media
Рет қаралды 3,4 МЛН