Home  >  Article  >  php教程  >  简单的mvc模式实例

简单的mvc模式实例

WBOY
WBOYOriginal
2016-06-06 19:37:431066browse

Lynda MVC模式有很多优势,可实现单点控制,分离代码,快速开发,后期容易维护与扩展,代码架构清晰等等。 无 ?php// mvc pattern 单点控制// 简单的控制器 Cclass NumberController extends DefaultController{public $model = null;public function __const

Lynda
MVC模式有很多优势,可实现单点控制,分离代码,快速开发,后期容易维护与扩展,代码架构清晰等等。
<?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);
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn