Тонкие контроллеры, простые представления
В Интернете обычно демонстрируют следующий пример, чтобы показать «толстый» контроллер. Кстати, который по сравнению с некоторыми контроллерами на LibArea достаточно тонкий.
Вот пример:
class UserController
{
/**
* Действие контроллера
* Возвращает приветствие юзеру с заданным ID
*/
public function actionUserHello($userId)
{
// Получаем имя и фамилию юзера из модели юзера (База Данных)
$user = UserModel::find($userId);
// Шаблону представления нужно полное имя юзера - делаем его
$name = $user->firstName.' '.$user->lastName;
// Создаем представление с нужным шаблоном и полным именем
$view = new View('hello', ['name' => $name]);
// Рендерим (создаем образ) представление и возвращаем приветствие
return $view->render();
}
}
Что мы видим? Мы видим винегрет! В контроллере намешано все, что можно — и модель, и представление, и, собственно, сам контроллер!
Мы видим имена модели и шаблона, намертво зашитые в контроллер. Мы видим манипуляции с данными модели в контроллере — формирование полного имени из имени и фамилии.
И т.д.
Таких статей достаточно много:
- https://habr.com/ru/post/424595/
- https://github.com/alexeymezenin/laravel-best-practices/blob/master/russian.md
- И т.д.
Давайте посмотрим, что можно сделать. И шаблоны, введем некоторые вспомогательные функции (короткие), чтобы удобно было работать.
Релиз (фиксация измений перед этим обновлением выпущен), установка / обновление можно прочитать по этой ссылки:
https://libarea.ru/post/797/ustanovka-obnovlenie-skripta-libarea
Адрес архив заменен, убрано -test
.
P.S. Если будут вопросы, пишите тут, с личку или в чате. Постараюсь помочь, если будут трудности с установкой или обновлением.
Вы хотите добавить ещё один слой?
Да. Вообще посмотрим, 2 последние дня изучаю это.