使用纯php建立MVC框架,仿照Thinkphp的目录结构
2015-12-04 11:53
645 查看
其实我又在想,MVC是什么东西,为什么要采用MVC,它能干啥?
分层的好处是什么?
好了,由于最近自己在做一个项目,用了thinkphp,天天看这玩意儿,我就在想,要不自己也写写看,或者效率,性能没有人家的高,试试看呢
开始贴写代码出来?
访问地址是这样子的http://localhost/MVC/index.php?module=Index&action=index
访问了之后,获取了到不同的参数,自动引入文件
此时看到:
等同于什么呢?
那好了,接下来,再看看Lib/Action/IndexAction.class.php里面到底又什么东西呢?
让我model出来秀一下Lib/Model/IndexModel.class.php
再看看的的模板Tpl/default/Index/index.php
分层的好处是什么?
好了,由于最近自己在做一个项目,用了thinkphp,天天看这玩意儿,我就在想,要不自己也写写看,或者效率,性能没有人家的高,试试看呢
开始贴写代码出来?
<?php $modules = $_GET['module']; //模块 $action = $_GET['action']; //模块下的动作 $module = $modules.'Action'; //模块文件名 if (file_exists('Lib/Action/'.$module.'.class.php')) { include_once ('Lib/Action/'.$module.'.class.php'); //根据URL加载 $module = new $module(); $module->$action(); }else { echo 'no is file!'; } ?>
访问地址是这样子的http://localhost/MVC/index.php?module=Index&action=index
访问了之后,获取了到不同的参数,自动引入文件
此时看到:
include_once ('Lib/Action/'.$module.'.class.php'); //根据URL加载 $module= new $module(); $module->$action();
等同于什么呢?
include_once ('Lib/Action/IndexAction.class.php'); //根据URL加载 $module = new IndexAction();//实例化 $module->index();//当前模块下的这个方法
那好了,接下来,再看看Lib/Action/IndexAction.class.php里面到底又什么东西呢?
<?php //我是模块叫IndexAction,它下面又一个方法index,这个模块让model(模型)干事去,它还让index.php去表现(显示),末后的model它都干了些啥? class IndexAction{ function index(){ include_once ("Lib/Model/IndexModel.class.php"); //一个模块对应着一个模型,当然这个模型你可以完全不要,直接在模块里面做这份工作,建议还是遵循MVC $model = new IndexModel(); //同样的我干了一件事情,我把$model请出来了 $title = $model->title; //我找$model要了一个title,我想把这个title给我亲爱的index.php include_once('Tpl/default/Index/index.php'); //用来显示的,这里我更不就没有用到html } } ?>
让我model出来秀一下Lib/Model/IndexModel.class.php
<?php class IndexModel{ public $title = "just for look"; } ?>
再看看的的模板Tpl/default/Index/index.php
<?php echo $title ?>
相关文章推荐
- 一个关于if else容易迷惑的问题
- 分享微信开发Html5轻游戏中的几个坑
- PHP5.2.*防止Hash冲突拒绝服务攻击的Patch
- 深入理解PHP之匿名函数
- JSP/PHP基于Ajax的分页功能实现
- 关于PHP通过PDO用中文条件查询MySQL的问题。
- 什么是设计模式
- PHP数据库长连接mysql_pconnect的细节
- kindeditor 批量上传 上传失败 thinkphp swfupload session
- 关于团队敏捷开发实践的 6 个常见问题
- Php Installing An Expansion
- 插件管理框架 for Delphi(一)
- PHP+Apache在Windows 9x下的安装和配置
- IIS 6 的 PHP 最佳配置方法
- 安装Apache和PHP的一些补充
- Linux Apache+MySQL+PHP
- 建立Apache+PHP+MySQL数据库驱动的动态网站
- PHP 5.3.0 安装分析心得
- apache 环境下 php 的配置注意事项