MVC на примере CodeIgniter

На официальном сайте есть туториал,  в котором рассказано о применении только представления и контроллера, модель опускается и остается на самостоятельное изучение. Далее попытаюсь рассказать, как использовать полную модель MVC на примере вывода записей в блоге.

Что такое Model — View — Controller?

Модель MVC

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.

Спасибо за внимание.


Опубликовано

в

от

Метки:

Комментарии

Один комментарий на ««MVC на примере CodeIgniter»»

  1. Аватар пользователя Vasiliy
    Vasiliy

    Это пример из одноименный книги по СИ

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *