学习封装 MVC (1)
来源:互联网 发布:sql msde 编辑:程序博客网 时间:2024/06/07 09:08
今天学习了封装MVC框架,给大家分享一下!
一、编写 index 入口文件
1.定义常量
2.加载函数类
3.启动框架
define('BAO',dirname(__FILE__));//获取当前框架目录define('CORE',BAO.'./core');//获取核心文件define('APP',BAO.'/app');//获取项目文件路径define('MODULE','app');//获取项目文件路径// 开启调试模式 建议开发阶段开启 部署阶段注释或者设为falsedefine('APP_DEBUG',True);if(APP_DEBUG){ ini_set('display_error','On');}else{ ini_set('display_error','Off');}//加载函数库include './core/common/function.php';//启动框架include CORE.'/bao.php';spl_autoload_register('\core\bao::load');//入口\core\bao::run();
二、类的自动加载
public static $classMap=array(); static public function load($class){ //判断当前类是否被引用 if(isset($classMap[$class])){ return true; }else { $class = str_replace('\\', '\\', $class); //判断这个路径是否存在 $file=BAO.'/'.$class . '.php'; if (is_file($file)) { include $file; self::$classMap[$class]=$class; } else { return false; } } }
三、设置路由类
1.隐藏index.php
2.获取URL参数
3.返回对应的控制器和方法
public $ctrl; public $action; public function __construct(){ //判断当前URL是否存在 if(isset($_SERVER['REQUEST_URI'])&& $_SERVER['REQUEST_URI']!='/'){ $path=$_SERVER['REQUEST_URI']; //index/index $pathArr=explode('/',trim($path,'/')); //判断控制器名 if(isset($pathArr[0])){ $this->ctrl=$pathArr[0]; } unset($pathArr[0]); //如果存在清除控制器 //判断方法名 if(isset($pathArr[1])){ $this->action=$pathArr[1]; unset($pathArr[1]);//如果存在清除方法 }else{ $this->action='index';//如果不存在默认 index方法 } //URL多余的部分转换成 get $count=count($pathArr)+2; $i=2; //把 get 过滤成 名 值相对 while($i<$count){ if(isset($pathArr[$i+1])){ $_GET[$pathArr[$i]]=$pathArr[$i+1]; } $i=$i+2; }; }else{ $this->ctrl; $this->action; } }
四、配置 .htaccess 文件
1.创建虚拟域名指向自己的框架
2.在框架的根目录中创建 .htaccess 文件
<IfModule mod_rewrite.c> Options +FollowSymlinks RewriteEngine On RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME} !-f RewriteRule ^(.*)$ index.php?/$1 [QSA,PT,L]</IfModule>
0 0
- 学习封装 MVC (1)
- 浅谈MVC学习封装
- 学习封装 MVC (2)
- 学习封装 MVC (3)
- 学习封装 MVC (4)
- 学习封装 MVC (5)
- 学习封装mvc(八)日志类
- 学习封装mvc(九)composer加载
- 封装mvc
- 独立封装简单mvc框架(1)
- MVC学习1-------------MVC流程
- 学习mvc框架封装(四)加载控制器
- 学习封装mvc系列(五)控制器中连接数据库
- 学习封装mvc(六)视图层的显示
- 学习封装mvc框架(七)配置加载类
- 学习封装mvc框架(十一)twig模板引擎
- MVC 封装之二
- 封装mvc框架
- iOS 网络编程 (七)AFNetworking 3.1.0 使用
- Markdown语法
- javascript 函数
- 打造自己的php框架
- IO多路复用实践
- 学习封装 MVC (1)
- Java对象的serialVersionUID在序列化和反序列化的用途
- git常用命令---逐渐补充完善
- struts2的配置和一个简单的例子
- C++经典面试题
- P问题,NP问题,NPC问题概念
- 编程之美 - 最大子数组和
- 轻量方便美观的log工具
- MVC的搭建过程