В чём смысл модели при таком подходе, нужна ли она?

Здравствуйте!
Просматриваю видеокурс один по ООП: чувак (Андрей Кудлай, WebForMySelf) производит следующие действия:
Создаёт обёртку.
Создаёт базовую модель, в которой создаёт экземпляр обёртки.
Создаёт модель, в которой наследует базовую модель и создаёт свойство - имя таблицы test, например.
В контроллере в одном из экшенов создаёт экземпляр модели и для этого экземпляра вызывает метод из обёртки, то есть делает запрос вида … select * from test ...

Я если честно не очень понимаю:
1. Зачем нам такая борода из цепочки србытий?
2. Зачем нам в модели свойство - имя таблицы test, если в контроллере мы делаем запрос вида … select * from test ...?
3. Нужна ли вообще в данном случае базовая модель с подключением обёртки и наследованием в модели или мы можем просто использовать обёртку сразу в контроллере?
Спасибо.
  • Вопрос задан
  • 397 просмотров
Решения вопроса 3
php666
@php666
PHP-макака
давай ты навсегда перестанешь смотереть ютуб с его дебилами, будешь читать статьи, смотреть исходники проектов на фрейморах и читать умные книги типа Фаулера.
Ответ написан
@BorisKorobkov Куратор тега PHP
Web developer
1. Зачем нам такая борода из цепочки событий?

Конкретно для модели БД такая цепочка оправдана, чтобы разделять методы и бизнес-логику. Например, интерфейс - для любого хранилища данных, базовая модель - для SQL или noSQL хранилища, конкретная модель - для определенной таблицы БД.
Если человек не объясняет этого ученикам, то он не может учить. Смотрите курсы, после которых не остается непонятных вопросов.

2. Зачем нам в модели свойство - имя таблицы test, если в контроллере мы делаем запрос вида … select * from test ...?

Конечно, надо подставлять имя таблицы. И вообще использовать какой-нибудь QueryBuilder.
Ответ написан
Konata69lol
@Konata69lol
backend developer (php/go)
Артём Рыженький, Вы верно подметили "В чём смысл модели при таком подходе, нужна ли она?".
В данном случае нам не нужна такая "тупая" модель и обертка с сырым скл.
Нужен квери билдер, который вернет инстанс модели или коллекцию инстансов. И вызов будет, например:
UserModel::where('id', 1)->get();
Это вернет нам коллекцию инстансов UserModel, где каждый инстанс соответствует строчке в таблице пользователей.

Берите нормального лектора, например из laracasts. Там есть видеокурс по написанию мвц фреймворка с нуля с хорошими практиками.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы