Это демо-проект для серии статей на Habr.com о создании переиспользуемых бандлов в Symfony 5.
Код организован по веткам. В master
ветке хранится изначальный проект до начала рефакторинга в бандл. В каждой следующей ветке хранится финальный код для соответствуюещей статьи:
Ветка | Статья |
---|---|
1-bootstrapping |
Часть 1. Минимальный бандл |
2-basic-refactoring |
Часть 2. Выносим код в бандл |
3-integration |
Часть 3. Интеграция бандла с хостом: шаблоны, стили, JS |
4-extend |
Часть 4. Расширение бандла в хосте |
5-configuration |
Часть 5. Конфигурация |
6-testing |
Часть 6. Тестирование |
7-support |
Часть 7. Релизный цикл, установка и обновление |
Каждую статью можно начинатmь с ветки предыдущей статьи.
В качестве примера - проект простейшего календаря мероприятий.
Основные фичи:
- Виджет-шаблон календаря
- Страница мероприятия
- Возможность экспортировать мероприятие в GoogleCalendar и iCalendar
- Редактор мероприятий (CRUD)
- Soft-delete мероприятий
Требуется вынести модуль календаря в бандл для переиспользования в своих проектах.
Для работы с проектом в системе должены быть установлены:
- PHP,
- php-sqlite
- Composer
- npm
- Symfony CLI
Установите зависимости:
composer install
npm install
Инициализируйте базу данных sqlite. Файл создастся в папке /var
проекта.
bin/console doctrine:database:create
bin/console doctrine:migrations:migrate
Запустите symfony-сервер и сервер ассетов в параллельных окнах терминала:
npm start
symfony server:start
Перейдите по адресу веб-сервера, и убедитесь, что у вас загружается календарь.
Если вы используете IDE PhpStorm, не забудьте включить поддержку Symfony в настройках Languages & Frameworks > PHP > Symfony
. Это даст удобную подсветку кода и подсказки.