Blogger Information
Blog 27
fans 2
comment 0
visits 19666
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
MVC基础---PHP九期线上班
一丁
Original
935 people have browsed it

1.demo1

实例

<?php

//命名空间
namespace mvc;

// 1. 加载模型
require 'Model.php';

// 2. 加载视图
require 'View.php';

// 3. 创建控制器
class Controller1{
	//创建方法
   public function index(){
       // 3.1 获取数据
        $model = new Model();
        $data = $model->getData();

       // 3.2 渲染模板
       $view = new View();
       return $view->fetch($data);
   }
}

// 4. 客户端调用/访问类成员
$controller = new Controller1();
echo $controller->index();

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行模式:

image.png


2.demo2

实例

<?php
//命名空间
namespace mvc;

// 1. 加载模型
use BaconQrCode\Common\Mode;

require 'Model.php';

// 2. 加载视图
require 'View.php';

// 3. 创建控制器
class Controller2{
	//创建方法
   public function index(Model $model, View $view){
       // 3.1 获取数据
        $data = $model->getData();

       // 3.2 渲染模板
       return $view->fetch($data);
   }
}

// 4. 客户端调用/访问类成员
// 将模型与视图的实例化代码从控制器分离出来, 放到了客户端
$model = new Model();
$view = new View();

// 将模型对象与视图对象,以参数的方式再次注入到控制器的方法
$controller = new Controller2();
echo $controller->index($model, $view);

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行结果图:

image.png


3.demo3

实例

<?php
//命名空间
namespace mvc;

// 1. 加载模型
use BaconQrCode\Common\Mode;

require 'Model.php';

// 2. 加载视图
require 'View.php';

// 3. 创建控制器
class Controller3{
  //建立保护属性
    protected $model;
    protected $view;
    // 构造方法, 注入点改到了构造方法中, 实现了模型与视图对象的共享
    public function __construct(Model $model, View $view){
        //把构造方法里的值传入保护属性
        $this->model = $model;
        $this->view = $view;
    }

    public function index(){
       // 3.1 获取数据
        $data = $this->model->getData();

       // 3.2 渲染模板
       return $this->view->fetch($data);
   }
}

// 4. 客户端调用/访问类成员
// 将模型与视图的实例化代码从控制器分离出来, 放到了客户端
$model = new Model();
$view = new View();

// 将模型对象与视图对象,以参数的方式再次注入到控制器的方法
$controller = new Controller3($model, $view);
echo $controller->index();

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行结果图:

image.png

4.demo4

实例

<?php
//命名空間
namespace mvc;
//加載模板
require './mvc/Model.php';
//加載視圖
require './mvc/View.php';
//創建容器
class rongqi{
//建立一個空數組
	protected $ina=[];
//建立綁定方法	
	public function bind($a,$b){
//把$a放入ina數組中,等於$b		
		$this->ina[$a]=$b;
		//$this->instance['model']='new Model(x,y)'
	}
//建立使用方法
	public function make($a,$c=[]){
//返回回調函數
		return call_user_func_array($this->ina[$a],[]);
	}
}
//實例化容器
$k=new rongqi;

//用到模型對象,視圖對象,將它們綁定到容器中
$k->bind('model',function (){return new Model();});
$k->bind('view',function (){return new View();});

//創建控制器
class Controller4{

	public function index(rongqi $k){
		//獲取數據
		$data=$k->make('model')->getData();
		//渲染模板
		return $k->make('view')->fetch($data);
	}

}
//客戶端調用
$Controller=new Controller4;
echo $Controller->index($k);

运行实例 »

点击 "运行实例" 按钮查看在线实例

运行结果图:

image.png


5.demo5

image.png


总结

知道了MVC基本框架,模型,视图,通过例子一步步把代码变的更加优美。

Correcting teacher:天蓬老师天蓬老师

Correction status:qualified

Teacher's comments:是很美, 希望一直这样美下去
Statement of this Website
The copyright of this blog article belongs to the blogger. Please specify the address when reprinting! If there is any infringement or violation of the law, please contact admin@php.cn Report processing!
All comments Speak rationally on civilized internet, please comply with News Comment Service Agreement
0 comments
Author's latest blog post