[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: изучаю mvc
Страницы: 1, 2
Reh
Добрый ночи!

Сейчас изучаю mvc и ни как не пойму с видом. Как правильно должен быть организован вид - это файлы хтмл в которые передаются значения переменных или это должен быть шаблон который подключается через шаблонизатор? Или вообще не так??Подскажите плиз
paul85
Насколько я понимаю вид - это некая конструкция, где происходит подготовка данных к отображению. Условия и циклы имеющие к этому прямое отношение.

А шаблонизатор это некий инструмент управления видами. Ну грубо говоря промежуточное звено. С точки зрения MVC его наличие или отсутствие не имеет никакого значения.
Reh
а я почему - то понял что подготовкой всех данных заведует модель, далее сообщает это контроллеру и он уже подключает нужные файлы хтмл или шаблоны (без циклов и условий). Не? Не так должно быть?
volter9
Вид это отображение (спасибо, кэп). С точки зрения веб разработки, вид это приготовленный HTML для вывода. В виде должно быть как можно меньше логики (имхо) т.е. максимум if'ы, циклы и echo. А шаблонизатор это лишь инструмент для подготовления и управления видами (как выше сказал paul85). Обычно, вид это HTML шаблон с php вставками.

_____________
Мой блог
Reh
volter9
paul85
Спасибо! Теперь стало понятно)
YVSIK
Цитата (paul85 @ 30.12.2014 - 02:02)
Насколько я понимаю вид - это некая конструкция, где происходит подготовка данных к отображению.

ОФ
Цитата
тут часто слышну охи и вздохи , мол не понятно написало, однако что тут выше написано,
это как теперь говориться !по современным меркам! как-бы, или все в этом духе, а точного ответа нет, когда подобное происходит с ответом, автор ответа осталяет за собой право ошибИться, что-бы не упасть в грязь , за ответ) ладно проехали



Reh
Цитата (Reh @ 30.12.2014 - 01:15)
mvc и ни как не пойму с видом.

Давай подумай, что таит в себе слово ВИД? wink.gif
наверно это вид и есть, это то, что ВИДНО, и как бы оно не называлось, в другом месте, ОНО останется внешним ВИДОМ

что надобно понять модель изготовит тебе ВИД, и этого мало, он MVC даже тебе его покажет,
--пока ты будешь биться с терминами будет много бестолковых телодвижений, самое главное называть вещи своими именами
ВИД- это то что видно
МОДЕЛЬ - это предваритеный набор тех или иных вещей или действий
осталось определиться с запросами, в этой модели он один и есть,(что хозяин желает) или пришел запрос, модель смоделировала и выдало в ВИДЕ ВИДА ! smile.gif
теперь этот ВИД и ВИДНО во всей красе biggrin.gif

_____________
«Гнусное свойство карликовых умов приписывать
________________!свое духовное убожество другим!»
___
О) как-же он прав=>__________________ © Оноре де Бальзак.

отличный хост(рекомендую !! )
My MVC-CMV
Reh
Так все файлы хтмл должна модель подключать, а не контроллер?
paul85
Цитата (Reh @ 30.12.2014 - 02:37)
Так все файлы хтмл должна модель подключать, а не контроллер?

Нет, модель не должна вызывать никаких видов. Модель занимается бизнес-логикой и работой с хранилищами (грубо говоря запросами к СуБД). Далее, данные (результат) модель возвращает контроллеру, из которого и была вызвана. Но эти данные пока что не готовы к отображению. Подготовкой к отображению занимается вид. Там содержатся циклы и условия для форматирования конечного результата. И только они. Контроллер вызывает вид и передает в него полученные от модели данные для "финишной" обработки.

Нужно рассматривать контроллер, как некий управляющий элемент. Это своего рода "начальник", который принимает решение какую модель вызвать и какому виду передать данные. В зависимости от ситуации. Либо перед этим вызвать другую модель.

Модели не должны вызывать друг друга, кстати. Всё взаимодействие происходит через контроллер.

Примерно так!

Цитата (YVSIK @ 30.12.2014 - 02:23)
автор ответа осталяет за собой право ошибИться, что-бы не упасть в грязь , за ответ) ладно проехали

Свернутый текст
То есть нужно безапелляционно говорить о чужих идеях? Думаю это попросту неприлично... Ведь не я придумал MVC. К тому же здесь на форуме присутствуют специалисты намного сильнее.


volter9
Reh
Я вот что вам скажу, точнее вот что написал inpost о MVC:

Цитата
… многие адаптировали под себя [MVC], где каждый использует свой приём
все системы, что ты знаешь - это переделанные под свой движок. Нет единой схемы, каждый делает так, как считает нужным …


Вот она мудрость. Нету единой схемы MVC, есть только один концепт разделения логики на технологии:
Вид - HTML/CSS
Модель - БД/SQL
Контролер - Back-end/PHP

А дальше вы сами решаете как это воплотить.

_____________
Мой блог
Reh
Цитата
Модели не должны вызывать друг друга, кстати. Всё взаимодействие происходит через контроллер.


Учту, этот момент я упустил.

Цитата
Вот она мудрость. Нету единой схемы MVC, есть только один концепт разделения логики на технологии:


Ну тогда это все упрощает)
Splaer
Это действительно верное высказывание.
Цитата

Reh
Я вот что вам скажу, точнее вот что написал inpost о MVC:

… многие адаптировали под себя [MVC], где каждый использует свой приём
все системы, что ты знаешь - это переделанные под свой движок. Нет единой схемы, каждый делает так, как считает нужным …


Я, в поисках "истинной" концепции MVC видел адское множество реализаций, которые многим отличались друг от друга, но общее у них было только одно:
Цитата

Вид - HTML/CSS
Модель - БД/SQL
Контролер - Back-end/PHP
Arh
Reh
index.php - допустим это контроллер, в который приходят команды (GET,POST)
news.php - модель для работы с новостями
tpl.php - шаблонизатор
index.tpl - шаблон

в index.php

$news = new news; //Подключаешь модель
$tpl = new tpl; //Подключаешь шаблонизатор
$tpl->display('index.tpl',$news->get($_GET['id'])); //Подключаешь шаблон, передаешь в него массив переменных, который вернул метод get для новости $_GET['id']


_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Reh
Splaer спасибо!

Arh,
тут понял, спасибо.
А как мне проверить все ли данные для шаблона подготовила модель? И если чего то не хватает то надо пользователя переадресовать с соответствующими комментариями.
Как реализовать проверку универсальную для всех шаблонов? И нужна ли она вообще?
Arh
Reh
В шаблонизаторе можно проверить, если нужно.
Можешь в контроллере проверять.

$data = $news->get($_GET['id']);
if(empty(($data)) {
//404
} else {
$tpl->display('index.tpl',$data);
}

Контроллер на то и контроллер, что бы определять куда что подключить.

Да принципе можно и в шаблоне проверять, потому что это шаблонная логика, если есть данные то показать такую часть шаблона, если нет, то другую.

<div>Текст</div>
<?php if(empty(($data)) :?>
<div>Новость</div>
<?php else :?>
<div>Нет данных</div>
<? endif;?>


MVC не строгая штука, и не какой то закон, это просто рекомендации о том как удобней строить приложения.

_____________
Промокод предоставляет скидку на заказ домена и/или хостинга reg.ru
BFCC-3895-8804-9ED2
Reh
Arh
спасибо!
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.