PHP Backend Test Job
Проект подготовлен под разработку на linux-совместимых системах
Для запуска необходимо выполнить следующие команды:
# создать локальный конфиг из примера для запуска Docker
$ cp .env.example .env
# Установить имя текущего пользователя и ID для того чтобы права на файлы проекта выставлялись корректно.
# Иначе докер будет создавать их из под root
$ sed -i -e "s/\$DOCKER_USER_NAME/$USER/" .env
$ sed -i -e "s/\$DOCKER_USER_ID/$UID/" .env
# Прописать нужные реквизиты доступа к БД и т.п. (для локальной разработке уже прописаны)
# При запуске в docker, хосты - это имя сервиса прописанное в docker-compose.yml
$ echo -e "127.0.0.1 dofi.docker\n" >> /etc/hosts
# Создать образ под базу
$ docker volume create dofi-db-volume
# Создать сеть для контейнеров
$ docker network create bridge
# Собрать контейнеры
$ make build
# Запустить контейнеры
$ make up
# Установка зависимостей и применение миграций
$ make init
# Просмотр достпуных команд
$ make
$ make help
Конфигурация проекта происходит в файле .env
В файле config/params.php
настройки:
- RateLimiter по каждому endpoint
- параметров загрузки файлов (разрешённые расширения, максимальный размер)
Common URL: http://dofi.docker/api/v1
Method: GET
Url: /file/download/{filename}
Method: POST
Url: /file/upload
список IP адресов, с которых контент скачали большее число раз (топовые скачиватели)
Method: GET
Url: /statistic/top-ip
список наиболее востребованного контента
Method: GET
Url: /statistic/populate-content