Проектная работа по курсу OTUS PHP Developer. Professional
Импортируйте себе Postman коллекцию, чтобы видеть все энтрипоинты с примерами данных.
- Файл docker-compose.yaml.dist скопировать в файл docker-compose.yaml
- Далее выполнить серию команд:
# На Linux установить make - sudo apt install make - для последующе работы.
# Либо если у вас другая ОС, смотрите в Makefile - файле в корне репозитория.
# Каждая фраза - цепочка вызовов linux команд
# соберет необходимые docker образы
make build
# скопирует необходимые файлы из шаблонов
make env
# поднимет проект
make up
# composer установит необходимые пакеты для работы приложения
make composer-install
# применит миграции к БД
make migration
# регистрация топиков очередей RabbitMQ
make rabbitMq-setup
Далее добавить в /etc/hosts
следующую строчку: (чтобы приложение было доступно из http://notify.local:85/api/)
127.0.0.1 notify.local
или пинайте API по URL: http://localhost:85/api/
В .env определен порт 85, менять по вкусу.
В docker-compose.yaml.dist есть закомментированные примеры docker контейнеров, запускающих конкретные очереди. Для правильной работы, нужны контейнеры с очередями нотификаций и обязательно контейнер worker-history для сохранения текущего состояния каждой нотификации.
Вы всегда можете переделать запуск фоновых процессов в supervisor, если не хотите замарачиваться с docker контейнерами.
-
Настройка SMS очереди - заглушка. Должна быть рабочей, ибо логика отправки бралась из документации
http://localhost:85 - web заглушка
http://localhost:85/api/ - приветственный энтрипоинт
http://localhost:85/api/v1/send - POST запрос, создает задание на нотификацию
http://localhost:85/api/v1/check-status/{id} - GET запрос, проверка статуса отправки нотификации сервисом. {id} - id переданный в методе /api/v1/send
# работа в цикле. прослушивает очередь email
php bin/console rabbitmq:consumer email -vv
# работа в цикле. прослушивает очередь telegram
php bin/console rabbitmq:consumer telegram -vv
# работа в цикле. прослушивает очередь vkontakte
php bin/console rabbitmq:consumer vkontakte -vv
# работа в цикле. прослушивает очередь sms
php bin/console rabbitmq:consumer sms -vv
# работа в цикле. прослушивает очередь discord
php bin/console rabbitmq:consumer discord -vv
# работа в цикле. прослушивает очередь slack
php bin/console rabbitmq:consumer slack -vv
# очередь прослушивания исторических данных
php bin/console rabbitmq:consumer history -vv
Выполните команду:
# применит миграции в базу данных для тестов
php bin/console doctrine:migrations:migrate --env test
Если будут ошибки, выполните команды ниже - создаст тестовую БД
php bin/console --env=test doctrine:database:create
php bin/console --env=test doctrine:schema:create
Для деплоя на продуктив и тестовый стенд перед каждым стартом эксплуатации надо выполнять эту команду для генерации тем очередей RabbitMQ
php bin/console rabbitmq:setup-fabric
Имя и телеграм ник | Фото |
---|---|
Тимлид проекта - Евгений (выпускник курса Тимлид Otus) (@auregal) |
|
Виктор Лаптев (@fiCeVitka) | |
Павел Гапоненко (@pavel_gaponenko) | |
Сергей Галочкин (@decole12) |
https://docs.google.com/document/d/17oU4hbykR7cwYygCpHYgSpB82sjHKmbP_W3VSPYcHRc/edit?usp=sharing