-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtask
More file actions
35 lines (28 loc) · 2.68 KB
/
task
File metadata and controls
35 lines (28 loc) · 2.68 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Тестовое задание
Необходимо написать CRUD сервис для управления библиотекой книг.
Модель данных книги:
Название
Автор (отдельный crud для авторов), может быть несколько авторов
Описание
Обложка (изображение)
Год публикации
Основная функциональность:
Добавление, редактирование, просмотр списка авторов
Добавление, редактирование книг.
Список книг. В списке необходимо реализовать inline редактирование всех свойств модели “Книга”
В список добавить фильтрацию по всем свойствам книг
Реализовать event листенер, который при сохранении книги, обновляет у автора кол-во книг (агрегируемое поле). Обновлять с помощью update запроса к базе данных.
Дополнительная функциональность:
Реализовать тот же CRUD с использованием SonataAdminBundle
Реализовать аутентификацию и авторизацию в админ панель с использованием FOSUserBundle + SonataUserBundle
Написать нативный SQL запрос: Получить список книг, которые написаны более 2-мя со-авторами. То есть получить отчет «книга — количество соавторов» и отфильтровать те, у которых со-авторов меньше 2х.
Тот же самой запрос написать с использование Doctrine ORM.
Сделать генерацию фейковых данных для книг и авторов, чтобы протестить запросы и фильтрацию.
Требования:
PHP 7.4
Написать с использованием фреймворка symfony 4.4
Не использовать любые дополнительные пакеты/бандлы для symfony.
Использовать скв git. Каждое функционально атомарное изменение заливать в git.
По окончанию залить проект на github или bitbucket и прислать ссылку
Задеплоить на любом бесплатном хостинге и прислать ссылку
Срок выполнения: 2 недели