На официальном сайте есть туториал, в котором рассказано о применении только представления и контроллера, модель опускается и остается на самостоятельное изучение. Далее попытаюсь рассказать, как использовать полную модель MVC на примере вывода записей в блоге.
Что такое Model — View — Controller?
Models (Модель) — получает необходимые данные.
Views (Представление) — показывает пользователю данные.
Controllers (Контроллер) — управляет моделью и представлением.
Допустим пользователь заходит на нашу страницу. В этот момент Контроллер вызывает Модель, которая возвращает последние 10 записей. Далее данные передаются из Контроллера в Представление, которое выводит страницу пользователю.
Рассмотрим как реализовать mvc на примере codeigniter.
Sql
CREATE TABLE `entries` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`anons` text,
`title` varchar(255) DEFAULT NULL,
`info` text,
`date_` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8
Model
Первое, создаем Модель, которая выбирает все записи из блога.
Наша MBlog Модель (расположение /system/application/models/mblog.php) выглядит так:
class MBlog extends Model{
function MBlog(){
parent::Model();
}function getAllEntries(){
$data = array();
$Q = $this— > db- > get(‘entries’);
if ($Q- > num_rows() > 0){
foreach ($Q- > result_array() as $row){
$data[] = $row;
}
}
$Q- > free_result();
return $data;
}
}
Controller
Второе, создаем Контроллер Blog (расположение /system/application/controllers/blog.php). Он выглядит так:
class Blog extends Controller {
function Blog(){
parent::Controller();
$this->load->model('MBlog');
}
function index(){
$data[‘title’] = “Мой Блог”;
$data[‘entries’] = $this-> MBlog-> getAllEntries();
$this-> load-> vars($data);
$this-> load-> view(‘template’);
}
}
Что же тут происходит?
1. $data[ ’ title’] будет использован как $title в шаблоне Представления.
2. Записи блога из базы данных будут помещены в $data[‘navlist’] с помощью Модели MBlog.
3. Все данные массива $data передаются в Представление.
View
Третье, создаем Представление template (расположение /system/application/views/template.php), которое выводит пользователю все записи. Он выглядит так:
<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Strict//EN” “http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd”>
<html xmlns=”http://www.w3.org/1999/xhtml” xml:lang=”en” lang=”en”>
<head >
<meta http-equiv=”content-type” content=”text/html; charset=utf-8” />
<title> <?php echo $title; ?> </title>
</head>
<body>
<?php foreach($entries as $row){
//выводим наши записи блога
};
?>
</body>
</html>
Вот и все. Для начинающих можно дать совет сначала создать блог по видео, а потом модифицировать его.
Чтобы иметь более глубокое представление как это все работает, можете посмотреть исходники одной CMS.
Спасибо за внимание.
Добавить комментарий