MVC模式有很多优势,可实现单点控制,分离代码,快速开发,后期容易维护与扩展,代码架构清晰等等。 ?php// mvc pattern 单点控制 // 简单的控制器 Cclass NumberController extends DefaultControll
<?php
// mvc pattern 单点控制
// 简单的控制器 C
class NumberController extends DefaultController
{
public $model = null;
public function __construct()
{
$this->model = NumberModel();
}
// V
public function view($value=0)
{
echo "The square of this number is: ",$this->model->square($value);
}
}
// 控制器的基类
class DefaultController
{
public function run($action = 'index', $id = 0)
{
if (!method_exists($this, $action)) {
$action = 'index';
}
return $this->$action($id);
}
// 简单输出模版
public function index()
{
$html = "";
for($i = 1; $i < 10; $i++)
{
$html .= sprintf('<li><a href="index.php?a=view&m=number&id=%d"></a></li>', $i, "INDEX_$i");
}
echo sprintf("<ul>%s</ul>", $html);
}
}
// 一个非常简单的模型,计算四边形的面积 M
class NumberModel
{
public function square($number)
{
return $number * $number;
}
}
// 获取控制器,模型,和参数
$action = isset($_GET['a']) ? $_GET['a'] : 'index';
$module = isset($_GET['m']) ? $_GET['m'] : '';
$id = isset($_GET['id']) ? $_GET['id'] : '';
// 找到我们的控制器
switch($module)
{
case 'number':
$controller = new NumberController();
break;
default:
$controller = new DefaultController();
break;
}
//<li><a href="index.php?a=view&m=number&id=1">Index_1</a></li>
$controller->run($action, $id);
