Blogger Information
Blog 22
fans 0
comment 0
visits 18464
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
composer安装及MVC实现----2019-10--31
sjgbctjda的博客
Original
652 people have browsed it

1、实现简单的MVC原理

目录结构:

image.png

通过在index.php中对路由进行解析,调用控制器的的类和方法来实现视图和模型的数据交换。

超全局变量$_SERVER是一个包含了头信息(header)、路径(path)以及脚本位置(script_location)等等信息的数组,可以通过$_SERVER['REQUEST_URI]来获取当前页面的路由信息。根据路由提供的信息我们可以获得需要调用的脚本信息,最后使用脚本中的类中的某些方法来实现视图和模型之间的数据交换。

index.php代码:

<?php
$uri = $_SERVER["REQUEST_URI"];         //获取路由
$path_info = $_SERVER['PATH_INFO'];     //用来获取脚本名称之后,查询语句之间的路径信息
$path = ltrim($path_info,'/');         //将$path_info字符串左边的'/'符号去掉
//解析控制器和方法;
$controller_method = explode('/',$path);    //将$path拆分为数组
$controller= ucfirst($controller_method[0]);        //获取控制器名称
$class = $controller_method[1];             //获取类名
$method = $controller_method[2];    //获取方法
require __DIR__.'/controller/'.$controller.'.php';
echo $class::$method();

Controller.php代码:

<?php
class control{
    
    public static function view()
    {    
        require __DIR__ . '/../model/db.php';
        require __DIR__ . '/../view/home.php';
    }
}

db.php代码:

<?php

class db
{
    protected $pdo=null;

    public function __construct($dsn,$username,$pwd)
    {
        $this->pdo=new PDO($dsn,$username,$pwd);
    }
    public function __get($name){
        return $this->$name;
    }
}

$dsn='mysql:host=127.0.0.1;dbname=video';
$username = 'root';
$pwd = 'root';

$db = new db($dsn,$username,$pwd);

$pdo = $db->pdo;
 
$sql = 'SELECT * FROM staff';

$stmt = $pdo->prepare($sql);

$stmt->execute();

$results = $stmt->fetchAll(PDO::FETCH_ASSOC);

home.php代码:

<?php

echo '<pre>'.print_r($results,true);

运行结果:

image.png




Correction status:qualified

Teacher's comments:mvc, 一定要站在高处来看, 一看就懂了
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