Используя PHP 7.3 и Symfony 4 сделать следующее:
-
Разработать модель данных "Новости", содержащее следующие поля:
Поле Описание id ID title Заголовок новости slug Ссылка на новость. Генерируется на основании title. Всегда уникален description Описание shortDescription краткое описание cratedAt дата создания. Дата ставится автоматом при создании новости updatedAt Дата обновления. Дата ставится при обновлении новости publishedAt Дата публикации. Дата приходит извне isActive Флаг активности новости isHide Флаг скрытости новости hits Количество просмотров новости -
Сделать миграцию.
-
Используя подход REST сделать 2 контроллера.
- Контроллер для админки CRUD. Все данные отправляются в формате JSON.
- Create
- Update
- Delete
- Контроллер для фронтовой части.
Update 30.06.2020 22:38. Отдавать данные надо в формате JSON
- Получение списка новостей
- Фильтр isActive = true
- Фильтр isHide = false
- Фильтр publishedAt от сейчас и старше
- Сортировка по полю publishedAt от новых к старым.
- Количество новостей 20 штук на странице
Update 30.06.2020 22:38. Количество элементов на странице приходит с фронта
- Текущая страница
- Получение новости по slug
- Фильтр isActive = true
- Фильтр isHide = false
- Фильтр publishedAt от сейчас и старше
- Получение списка новостей
- Контроллер для админки CRUD. Все данные отправляются в формате JSON.
-
Сделать автоматическое создание sitemap для новостей
Update 30.06.2020 22:38. Sitemap должен генерироваться автоматически при создании/изменинии/удалении новости
- В sitemap попадают только новости со следующими фильтрами
- Фильтр isActive = true
- Фильтр isHide = false
- Фильтр publishedAt от сейчас и старше
- Сортировка по полю publishedAt от новых к старым.
- В sitemap попадают только новости со следующими фильтрами
- При получении новости для фронтовой части, если новость стоит с параметром isActive = false отдаем 404 ошибку
- Если новость имеет следующий параметр isActive = true и isHide = true должен быть доступен по прямой ссылке, но не должен попадать в список новостей и в sitemap
- Если publishedAt больше чем сейчас должен отдавать 404 и не важно какие параметры установлены в isActive и isHide
- Генератор sitemap не должен влиять на работу системы. Он должен генерироваться в фоне.
- Обязательно использовать docker для разработки. В данном репозитории уже создана заготовка. Можно использовать ее, а можно сделать свою.
telegram: @nazartsevEgor