@masimka

Я могу подготовить нужные мне участки шаблона в методе модели Kohana?

приветствую, всемогущий коллективный разум.
Не хочу нагружать контроллер, мне надо подготовить участки шаблона, заранее перед вставлением их в view.,
Могу это сделать с помощью метода описанного в моей модели и потом уже использовать их контроллере?
Другими словами, я могу перебросить подготовку view в метод и потом возвращать уже готовые view блоки в гланый view в контроллере. Правильно ли это будет? И где про правильность можно почитать?
====
МОдель_Подготовка_блоков {
паблик_подготовка_одного_блока (ид_блока, еще_ид){
берем переменную = 
загоняем_в_нее_подготовленный_кусок_html;
импортируем_в+переменную_с_помощью_view (View::factory('public/landing/block'))
возврат переменной_с_уже_готовым_кодом_хтмл.
}
}

// Контроллер

Новый контроллекр _ наследник_Коммон {
вывод_контента_на_главной (){
полученые_блоки = ОРМ::получениевсех блоков();
 каждому_блоку(форич)  (полученые_блоки как каждый_блок){
массив_на_выход_с_контентом = ОРМ('Подготовка_блоков')->подготовка_одного_блока (каждый_блок)
}
вывод в гланый вью_уже_подготовленных блоков = view (View::factory('public/landing/all_block'))
}
}
  • Вопрос задан
  • 167 просмотров
Решения вопроса 1
Lyrium
@Lyrium
Web developer
По моему скромному мнению идея не хороша.
Суть в том что html должен быть в view. Хороший код - понятный код, но в вашем варианте будет не так. Например: мне нужно поправить у вас footer, лезу в view, а футера там нет.

Модель MVC проста и известна, Kohana на ней почитать можно здесь,
Если вкратце: Controllers = основная логика приложения, Models = обращение к бд, создание методов и классов для того чтобы разгрузить контроллеры, view = отображение весь html и данные для отображения.

Также, я считаю, что различные helpers которые часто встраивают в фреймворки портят читабельность для широкого круга разработчиков. Чистый html знают все кто знаком web, что еще нужно?

Для того чтобы разгрузить ваши view, как-то их структурировать и избежать повторения больших кусков кода (аля шаблон), используйте шаблонизаторы, например twig
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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