/symfony-bundles-tutorial

Sample project for Symfony bundles tutorial on Habr.com

Primary LanguagePHP

Это демо-проект для серии статей на 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 мероприятий

Задача

Требуется вынести модуль календаря в бандл для переиспользования в своих проектах.

Установка

Для работы с проектом в системе должены быть установлены:

Установите зависимости:

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. Это даст удобную подсветку кода и подсказки.