MVC的工作原理以及目标就是将用户请求的URL映射到“控制器中的方法上”
MVC 是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建 Web 应用程序的模式:
Model(模型)表示应用程序核心(比如数据库记录列表)
View(视图)显示数据(数据库记录)
Controller(控制器)处理输入(写入数据库记录)
Model(模型)是应用程序中用于处理应用程序数据逻辑的部分,通常模型对象负责在数据库中存取数据。
View(视图)是应用程序中处理数据显示的部分,通常视图是依据模型数据创建的。
Controller(控制器)是应用程序中处理用户交互的部分,通常控制器负责从视图读取数据,控制用户输入,并向模型发送数据。
接下来通过代码来展示MVC框架的原理:
如图创建项目,首先创建 模型 文件也就是数据:Model.php
// M Model 数据,用模型 用二维数组模拟数据 $data = [ ['id'=>1,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'], ['id'=>2,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'], ['id'=>3,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'], ['id'=>4,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'], ['id'=>5,'name'=>'老王','age'=>22,'email'=>'wang@qq.com'] ];
接下来创建 视图模板 文件 显示数据:show.html
<table> <tr> <th>ID</th> <th>姓名</th> <th>年龄</th> <th>邮箱</th> </tr> <?php foreach($data as $staff): ?> <tr> <td><?=$staff['id']; ?></td> <td><?=$staff['name']; ?></td> <td><?=$staff['age']; ?></td> <td><?=$staff['email']; ?></td> </tr> <?php endforeach; ?> </table>
接下来创建 控制器文件,方法内指定模板文件以及显示的数据:Staff.php
<?php class Staff { public function show($data){ // 引入模板 include __DIR__.'/../view/show.html'; } }
最后一步创建这个小MVC项目的入口文件:index.php
<?php // 1、将用户请求的控制器和操作从URL地址中取出 $url = explode('/',$_SERVER['REQUEST_URI']); $controller = ucfirst($url[3]); $action = $url[4]; // 2、加载控制器类和模型类文件 require_once __DIR__.'/controller/'.$controller.'.php'; require_once __DIR__.'/model/Model.php'; // 3、调用控制器中的方法 echo (new $controller)->$action($data);
此时MVC文件以及入口文件创建完毕,通过本地虚拟主机创建的域名和MVC项目进行绑定,例如域名为 mvc.io
在浏览器的地址栏中输入:mvc.io/index.php/staff/show 当页面中出现以下界面则证明MVC项目创建成功