Как стать автором
Обновить

MVC на примере CodeIgniter

Время на прочтение3 мин
Количество просмотров11K
На официальном сайте есть видео где рассказывается о создании блога. Там рассказано о применении только представления и контроллера, модель опускается и остается на самостоятельное изучение. Далее попытаюсь рассказать, как использовать полную модель 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[‘entries’] с помощью Модели 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.

Спасибо за внимание.
Теги:
Хабы:
+2
Комментарии19

Публикации

Изменить настройки темы

Истории

Ближайшие события

Weekend Offer в AliExpress
Дата20 – 21 апреля
Время10:00 – 20:00
Место
Онлайн
Конференция «Я.Железо»
Дата18 мая
Время14:00 – 23:59
Место
МоскваОнлайн