Каждый знает, что такое модель, представление, контролер. Как бы там ни было, давайте рассмотрим эти понятия более. Традиционный способ подключения к БД и выборка из нее:
<?php $link = mysql_connect(’localhost’, ‘mysql_user’, ‘mysql_password’); if (!$link) { die(’Could not connect: ‘ . mysql_error()); } echo ‘Connected successfully’; mysql_close($link); $query_results = mysql_query(’select * from searchNames order by firstname desc’); ?> <html> <body> <h1>List of Datas</h1> <?php while ($row = mysql_fetch_object($query_results)) { ?> <h2><?php echo $row->firstname ?></h2> <h2><?php echo $row->lastname ?></h2> <?php } ?> </body> </html>
Здесь мы наблюдаем стандартный способ подключения к базе данных через mysql_connect и последующее сохранение результатов выборки в переменной $result. Далее мы обычным образом публикуем данные, полученные из БД. Теперь давайте разберемся, как это будет происходить в MVC.
Модель
Данные в модели сохранены в ее атрибутах и доступ к ним из приложения возможен через специальные функции. Модель так же должна предоставлять возможности для хранения в ней представлений, а так же иметь инерфейсы для удобного доступа к перечню представлений. Всякий раз, когда вносятся изменения в модель , она должна в свою очередь «оповещать» об этом зарегистрированные в ней представления.
Код ниже демонстрирует работу модели:
<?php
function methodName()
{
$link = mysql_connect(’localhost’, ‘mysql_user’, ‘mysql_password’);
if (!$link) {
die(’Could not connect: ‘ . mysql_error());
}
echo ‘Connected successfully’;
mysql_close($link);
$query_results= mysql_query(’select * from searchNames order by firstname desc’);
$data = array();
while ($row = mysql_fetch_objects($query_results)) {
$data[] = $row;
}
return $data;
}
?>
Контролеры
Задача контролеров – отслеживать изменения вносимые пользователями в представления и корректировать соответствующим образом саму модель.
<?php
$data= methodName();
display_template(’data.tpl’);
?>
Представления
Представления должны создавать интерфейсы для взаимодействия с пользователем и постоянно их обновлять. Представления отслеживает изменения в модели и, когда она изменяется – вносятся корректировки в интерфейсы.
1 2 3 4 5 6 7 8 9 10 11 |
<html> <body> <h1>List of Datas</h1> <?php foreach ($data as $row) { ?> <h2><?php echo $row->firstname ?></h2> <h2><?php echo $row->lastname?></h2> <?php } ?> </body> </html> |
Как все это работает?
Когда пользователь обращается к некоторому url, контроллер обращается к представлению и модели и выводит нужную информацию. Т.е. контроллер работает как посредник между представлением и моделью.





