Хабр Курсы для всех
РЕКЛАМА
Практикум, Хекслет, SkyPro, авторские курсы — собрали всех и попросили скидки. Осталось выбрать!
header('Правильный статус ошибки, например, 400 или 404');
$error = 'Соответствующее ошибке сообщение пользователю, например, Страницы не существует';
include 'error.tpl.php'; // шаблон для отображения ошибки
The view manages the graphical and/or textual output to the portion of the bitmapped display that is allocated to its application. The controller interprets the mouse and keyboard inputs from the user, commanding the model and/or the view to change as appropriate. Finally, the model manages the behavior and data of the application domain, responds to requests for information about its state (usually from the view), and responds to instructions to change state (usually from the controller).
а стрелка на схеме «Данные от Представления к Модели» — просто катастрофически не по MVC
responds to requests for information about its state (usually from the view)
<?= $model->getItem(1); ?>Статья именно об этом
Статья так же о том, что это плохая практика.
Определил я правильность, изучив 100500 определений и пояснений авторов разной степени авторитетности.
MVC — это образ мышления при проектировании веб-приложения.
И если в .NET какая-то другая MVC (в чём я, кстати, сомневаюсь) — значит, там вовсе не MVC
либо там не MVC, либо комментатор так и не уловил, где там MVC, а где другие, смежные паттерны
Поэтому я привёл то определение (заметьте, не моё), которое даёт максимально ясное понимание MVC.
э?..
определение, которое Вы считаете верным
self changed, а потом сами получают от модели нужные им данные. В классическом MVC только модель не зависит от контроллеров и представлений, а они зависят друг от друга и от модели.В правильном MVC есть события, их обрабатывает Контроллер, точнее, он в ответ на событие вызывает соответствующий метод Модели.
Может, расскажите уже, что за мифическая модель2?
Вообще в процессе обработки http никто не мешает генерировать события
Error)include 'product.tpl.php';, то есть прямой рендер представления, которое потом внутри себя обращается к модели.у меня есть обращение к Модели Контроллером:
$product = Product::Load($id)
у меня (да, можете считать, что только у меня) Контроллер всегда вызывает Представление,
Вы вольны его использовать, только не говорите, что этот шаблон — часть шаблона MVC, это сильно неправда
<?=$product->Price;?>. Оно прямо зависит от модели. Измените что-то в ней и нужно будет менять представление. ибо в классике Модель ничего не делает, пока её не дёрнут, а в ответ на дёрганье даёт ответ — тому, кому дёрнул…

нет, не в классике, а в интерпретации…
ибо в классике Модель ничего не делает, пока её не дёрнут, а в ответ на дёрганье даёт ответ — тому, кому дёрнул…
Thus a model may notify any dependent views that it has changed by simply sending the message self changed. The view (and any other objects that are registered as dependents of the model) receives the message update: with the model object as the argument.
Событие, которое генерирует тот, кто взаимодействует с итоговым Представлением (обычно пользователь), отдаётся на обработку соответствующему Контроллеру
3.2. В случае успеха – Представление для отображения запрашиваемых данных либо сообщения об их успешном сохранении (если Запрос 1 был на изменение данных).
mixed Product_Load (int $id) {… }
// возвращает ассоциативный массив с данными о Товаре либо FALSE при неудаче
bool Product_Save (array $data) {… }
// возвращает TRUE при удачном сохранении данных $data, либо FALSE при неудаче
include 'product.load.php?id=...'
The model is an object that represents some information about the domain.
MVC для веб: проще некуда