Короче у нас будет самый простой 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>