По всем вопросам в телеграм
Зависимости: make, git, docker, docker-compose
git clone https://github.com/buyanov/tk-team-test-api.git
// смотрим допустимые команды
make help
// собираем образ
make build
// ставим зависимости локально
make install
// запускаем приложение
make up
// накатываем тестовые данные и поисковый индекс
make init
// проверяем codestyle
make cs
// запускаем тесты
make test
// во время работы можно посмотреть логи
make logs
// останавливаем и удаляем контейнеры
make down
Важно: Чтобы выполнять посмотреть результаты выполнения запросов я использовал Postman и первым делом надо получить токен Админа для выполнения авторизованных запросов
Метод для получения админского токена
-
В качестве веб сервера и менеджера процессов используется RoadRunner запущен он с APP_REFRESH=true конфиг лежит ./.rr.yaml
-
вместо привычных
dd()
иdump()
надо использовать\dev\dd()
и\dev\dump()
-
В проекте не делал кеширования, думаю на начальном этапе это бессмысленная трата времени
-
Добавил pgbouncer иначе база забивается постоянными соединениями и приложение падает
-
Добавил prometheus + grafana (localhost:3000) чтобы можно было следить за утечками памяти
-
Индексация новых тасков делается через очереди (иногда при старте индекс может быть пустым, тогда надо просто переиндексировать данные из базы)
docker-compose exec app php artisan scout:import "App\Task"
-
Для авторизации использовал Sanctum (решил просто попробовать как он) сделал вывод что для API лучше Passport или в случае с RR попробовать вынести эту логику в middleware на GO
-
Еще доделал бы нормальное включение/выключения xdebug (у меня он локально включен был)
-
Как следует посмотреть результаты профилирования и потестить работу RR с текущим набором библиотек на наличие утечек
-
Сделать preload все-таки PHP 7.4 но и это надо проверять и тестировать
https://documenter.getpostman.com/view/2790977/T1DjkKyg?version=latest