PHP中MVC思想过程详解(五)
mvc第五版文件如图所示:
config目录下是配置数据库的配置文件,controller为控制器,libs是smarty函数库,model是模型,runtime是编译后文件目录,view是视图,admin.php是入口文件。
admin.php如何文件代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 |
<?php /** * * @author LiZeQiao <674531003@qq.com> * @version */ //入口文件 //加载Smarty require './libs/Smarty.class.php'; //注册我们的自动加载 spl_autoload_register('my_autoload'); //类的自动加载 function my_autoload($className){ //加载控制器 if(substr($className,-10)=='Controller'){ require './controller/' . $className . '.php'; } //不是控制器,也不是 Smarty,默认当作Model类 else{ require './model/' . $className . '.php'; } } //包含配置文件 require './config/config.php'; //实例化对象 $controller=$_GET['c'];//Goods 、 Atricle //实例化对象(控制器对象) $className=$controller.'Controller'; // GoodsController $obj=new $className(); //调用控制器的入口方法,将控制权,交给控制器 $obj->run(); |
这边用了php内置函数spl_autoload_register — 注册__autoload()函数
在new创建一个对象时,如何没有相对应的控制器,就去调用model模型类。
GoodsController.php代码:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
<?php /** * * @author LiZeQiao <674531003@qq.com> * @version */ class GoodsController extends Controller{ public function index(){ $this->display('Goods/index.html'); } public function add(){ $mod=new Model(); var_dump($mod); $this->display('Goods/add.html'); } public function edit(){ } public function update(){ } public function delete(){ } public function view(){ } } |
这里加载了一个数据库操作模型。可以调用相对应的方法。
mvc大致是这样,如果还有什么不明白的话,可以加我QQ。留言关闭了,因为垃圾评论太多,见谅!
网盘下载地址:http://pan.baidu.com/s/1gdkUj6b
- PHP中MVC思想过程详解(四)
- js获取滚动条高度+滚动条到底部加载ajax下一页