@210mev
PHP

Порекомендуйте подход, как лучше реализовать задачу?

Здравствуйте.

Дали тестовое задание, хочется как то продумано его сделать, с пользой для себя. Попробовать применить паттерны, SOLID и т.д. и сделать все на чистом ПХП либо Laravel использовать.

Суть задания. Есть меню ресторана на неделю в JSON формате. Надо что бы при вводе юзером своего логина, отображалось недельное меню с возможностью сделать заказа, если уже на текущий день у данного юзера есть заказ, то надо его отобразить. Т.е. регистрация как таковая не нужна, если юзер сделал заказ, значит надо заказ и логин сохранить в базу.

Думаю делать следующим образом.
База данных MySQL: две таблицы, юзеры и заказы. В заказах буду хранить логин и json заказа, т.е. как то надо его сформировать, выделить из общего JSON.

Классы по паттерну MVC создам контроллеры юзеры и заказы. В юзерах будет метод проверяющий есть ли юзер в таблице заказов, метод отображения юзера и его заказа, метод отображающий меню. В заказах будут метод сохранения заказа и логина в таблицу заказ. Или не нужен контроллер заказы, если метод заказа будет в контроллере юзеры?

Модели создам юзер и заказ. Опять же стоит ли делать модель заказа.

Вот как то так думаю начать. В принципе что такое MVC, некоторые паттерны понимаю, но не настолько опытен что бы оценить какой подход выбрать, что бы можно было потом без сильных проблем добавить авторизацию, админа, Guzzle, для роутинга пакеты Симфони и т.д.
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 1
Stalker_RED
@Stalker_RED
в общем как бы вы делали?

1. Для начала определил бы что аткое "заказ" и придумал как его можно затолкать в базу.
Разузнал бы подробнее, что там за инновационная схема с логином, но без регистрации.
2. Спроектировал бы структуру БД
3. Выбрал бы фреймворк, установил его и настроил
4. Заказал бы верстку страничек логина, списка заказов и создания заказа (возможно понадобится больше страниц)
5. Создал бы экшены для этого всего
(тут много подпунктов, но мне уже лень)
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы