Heim  >  Artikel  >  php教程  >  简单的mvc模式实例

简单的mvc模式实例

WBOY
WBOYOriginal
2016-06-06 19:37:431067Durchsuche

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);
Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn