Короче у нас будет самый простой MVC проект..., пользователь будет вызывать в веб браузере index.php, который будет вызывать контроллер MainController, и метод action_index, метод action_index, будет вызывать метод get_items из модели MainModel, метод get_items, будет возвращать ассоциативный массив, который мы передадим во вьюшку home.php, во вьюшки home.php, спомощью foreach отображаем данные, кстати мы будем использовать шаблон template.php Так будет выглядеть наш проект (controller, model, и view это папки, а index.php это как-бы загрузчик):
controller
model
view
index.php
Так должно выглядеть:
index.php:
<?php require_once('./controller/MainController.php'); // Подключаем контроллер MainController.php $mc = new MainController; // Объект mc - MainController // Если action не существует, или action пустой, то $str_action по умолчанию будет index if(!isset($_REQUEST['action']) || is_null($_REQUEST['action'])) $str_action = 'index'; else $str_action = $_REQUEST['action']; // Иначе считываем action // Обработка action switch($str_action) { case 'index': echo $mc->action_index(); // Если action = index, то вызываем метод из MainController action_index(), и отображаем break; } ?>
Контроллер MainController.php:
<?php require_once('./model/main.php'); function show($filename, $values = NULL) { ob_start(); if(isset($values)) extract($values); include($filename); return ob_get_clean(); } class MainController { public function action_index() { $mm = new MainModel; // Объявляем MainModel $str_view = show('./view/home.php', array('person' => $mm->get_items())); return show('./view/template.php', array('title' => 'Home', 'content' => $str_view)); } } ?>
Модель MainModel.php:
<?php class MainModel { private $arr_items; public function __construct() { $this->arr_items = array('firstname' => 'Anton', 'lastname' => 'Popov', 'gender' => 'M', 'birthday' => '01.05.1980'); } public function get_items() { return $this->arr_items; } } ?>
Шаблон template.php:
<html> <head> <title><?=$title; ?></title> </head> <body> <?=$content; ?> </body> </html>
Вьюшка home.php:
<h1>Home</h1> <?php foreach($person as $k => $v): ?> <div><?=$k; ?>=<?=$v; ?></div> <?php endforeach; ?> </table>