-
Клонирование проекта
git clone https://github.com/seddikur/Post.git -
Запуск Docker
docker compose up -d -
Переход в контейнер
docker exec -it post-php-1 bash -
Запуск обновлений yii2
composer update -
Настройки БД
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=post-db-1;dbname=dbyii',
'username' => 'root',
'password' => 'secret',
'charset' => 'utf8',``
- Запуск миграций
php yii migrate
GET /article: получение постранично списка всех статей;
POST /article: создание новой статьи;
GET /article/123: получение информации по статьие с id равным 123;
PATCH /article/123 и PUT /article/123: изменение информации по статье с id равным 123;
DELETE /article/123: удаление статьи с id равным 123;
Выполнить по данному ТЗ, маленькое тестовое задание с использованием фреймворка Yii2. Добавляя сущности, нужно так же учитывать добавление Миграций, Моделей, Сидов и Фэкторис. А так же связи для них. Связку требований и технологий используем, так как вы считаете будет правильней или удобней.
- Docker
- Yii2 + MySQL
- Repository + Services + DTO
Спроектировать и реализовать базу данных для хранения следующих сущностей:
- Автор статьи:
- ФИО
- Год рождения
- Биография
- Категория статьи (дерево неограниченной вложенности)
- Название
- Описание
- Статья
- Название
- Картинка
- Анонс
- Текст
- Автор (может быть только один)
- Категории (может быть несколько)
- Реализовать JSON Rest API для получений и поиска данных (с пагинацией):
- Список статей
- Поиск статей по названию/категории/автору
- Реализовать JSON Rest API для получения полных данных (по id) о:
- Авторе
- Статье
- Категории
Реализацию маршрутов и формат оставляем данных на ваше усмотрении в соответствие с логикой задания
- Полное развертывание проекта со всеми данными
- Генерация превью картинок
- Помимо пагинация - реализованная сортировка результатов
- Покрытие тестами ответы запросов
Придерживаться PSR стандартам оформления кода.
Использовать возможности фреймворка.
Критерии оценки:
- В первую очередь оценивается логика организации кода и проекта в целом
- Отсутствие глюков и багов
- Внимание к деталям
- Удобство и логичность для пользователя
- Читаемость и восприятие кода
Проект должен быть выложен на GitHub и содержать readme файл с инструкциями по развертыванию и запуску проекта.