Сертификат об успешном прохождении курса.
При изучении были рассмотрены темы:
- Service containers - конфигурация, использование.
- Routing, Controller, View - настройка роутинга с аннтотациям или через конфигурацию, обработка запросов в контролерах и рендеринг шеблонов.
- Twig - верстка шаблонов с использованием Twig, собственные расширения для Twig - фильтры, функции
- Event, Event subscribers, Event listener - создание событий и регирование на события symfony.
- Doctrine2 - создание сущностей (entity) и описание через аннтотации типов полей, связей сущеностей, валидации, использование Lifecycle для сущностей, подготовка миграций для БД.
- Symfony security - использование встроенной системы авторизации, событий security бандла, использование анотаций в контролерах для проверки авторизованых пользователей, форма регитсрации пользоватеоя, редактирования профиля.
- Messenger - oтправка почтовых сообщений с использованием consumer-а, вертска писем с использованием шаблонов twig.
- Translating - интернализация приложения с поддержкой двух языков интерфейса, двух языков для электронных писем, перевод сообщений валидации форм.
- Forms - создание html форм, их обработка при отправке данных, валидация данных с использованием компонента Forms.
- Использование Docker для среды разработки и подготовка к деплою приложения в серду с docker контейнерами
- Тестирование классов через PHPUnit - юнит тесты, интеграционные тесты, настройка отчёта процента покрытия тестами кода через "pcov" расширение.
Для проекта нужен docker (docker desktop) а так же docker-compose
|
|_ app/ <-- symfony приложение и фронт часть проекта
|_ docker-files/ <-- настройка для docker контейнеров
|_ docker-compose.yml <--- файл конфига основной для запуска через docker-compose
|_ docker-compose.override.yml <--- файл дополнение для docker контейнеров
consumer Консьюмер symfony
database Postgres база (подключение через localhost порт 5432)
front Контейнерс с NodeJs и фронтовой частью (yarn и symfony encore)
mailcatcher Для разработки и отладки отправки писем с symfony
с интерфейсом просмотра писем http://localhost:1080
nginx Вэб сервер проекта по адресу http://localhost
php Контейнер с symfony
Для настройки переменных окружения docker контейнеров необходимо скопировать файл и внести собственные настройки
cp .env-example .envДля настройки переменных окружения symfony прокта необходимо скопировать файл и внести собственные настройки для проекта
cp app/.env-example app/.envсобираем контенеры и стратуем docker
docker-compose up -d --buildСобрать фронт часть проекта:
docker-compose run --rm front sh -c "yarn install && yarn encore production"🏃🏻 Для загрузки тестовых данных "fixtures" выполнить через docker-compose команду
docker-compose run --rm php sh -c "php bin/console doctrine:fixtures:load -n"📺 или же можно воспользоватся интерактивным режимом зайдя в контейнер php
docker-compose exec php bashДля выполнения задач связанных с разработкой и настройкой symfony проекта можно заходить в контейнер php и выполнять привычные команды для symfony:
docker-compose exec php bashпоявится командная строка интерпретатора bash запущенного внутри контейнера. Например, посмотреть существующие роуты в symfony проекте:
php bin/console debug:route🚀 Основной проект доступен по адресу
http://localhost
📧 Для отладки отправки писем используется MailCatcher доступен по адресу
http://localhost:1080/
В проекте реализовано тетирование 3х уровней - Unit тесты, Integration тесты, Functional тесты
Для запуска всех тестов достаточно выполнить команду:
docker-compose run --rm php sh -c 'make tests-all'для запуска только Unit тестов
docker-compose run --rm php sh -c 'make test-unit'для запуска Integration тестов
docker-compose run --rm php sh -c 'make tests-integration'для запуска Functional тестов
docker-compose run --rm php sh -c 'make tests-functional'Так же в ходе разработки тестов может быть удобно выполнять тесты в контейнере php для этого необходимо зайти в запущенный контейнер
docker-compose exec php bashи выполнять привычные команды PHPUnit уже в контейнере. Например запусить все тесты находясь в контейнере php
make tests-all
--- или же ---
php bin/phpunitФронт-часть проекта развернута в контейнере front
Для сборки фронт части в продекшен режиме выполнить команду
docker-compose run --rm front sh -c "yarn encore production"Для сборки фронт-части в dev режиме
docker-compose run --rm front sh -c "yarn encore dev"в режиме наблюдения (пересобирает на лету)
docker-compose run --rm front sh -c "yarn encore dev --watch"Все команды для сборки, запуска или остановки контейнеров выопнять в корневой директории проекта (там где расположен файл docker-compose.yml)
Чтобы пересобрать все контейнеры заново (с нуля) выпонить команду
docker-compose buildЗапуск контейнеров (если уже было сделана сборка контейнеров - build) чтобы начать раобтать с проектом:
docker-compose up -dДля остановки docker контейнеров используйте команду:
docker-compose stopЕсли необходимо удалить собранные контейнеры:
docker-compose downпосле удаления собранных контейнеров необходимо будет их заново собрать командой docker-compose build