封装mvc框架有大概8个步骤
1.入口文件
2.定义常量
3.引入函数库
4.自动加载类
5.启动框架
6.路由解析
7.加载控制器
8.返回结果
这是封装一个框架的运行流程;
一、新建一个项目入口文件,在入口文件中我们需要做的有:1..定义常量 2.加载函数库 3.启动框架:
我们要定义当前框架所在的根目录,
定义框架的核心文件所处的目录,
定义项目文件(控制器 模型)所在的目录
定义是否开启调错模式;
二、加载函数库
include './core/common/function.php';
在function.php中
<?php function p($var) { if(is_bool($var)){ var_dump($var); }else if(is_null($var)){ var_dump(NULL); }else{ echo "<pre style='position:relative;z_index:1000;padding:10px;border-radius:5px;background:#F5F5F5;border:1px.solid.#aaa;font-size:14px;line-height:18px;opacity:0.9;'>".print_r($var,true)."</pre>"; } }
注意 :这里的CORE是项目的文件夹 ,是核心目录结构 函数库common
三、 设置类为静态方法,开始启动框架
include './core/mvc.php'; \core\mvc::run(); p(MVC)
这里用p(MVC)输出一下运行后输出 MVC 就说明入口文件完成
四、自动加载类库
在基础类中放入一个load方法,用来自动加载类库
<?php namespace core; class mvc { public static $classMap = array(); static public function run() { // p('ok'); $route = new \core\route(); } static public function load($class) { //类的自动加载 // p($class); // p(MVC.'/'.$class.'.php'); if(isset($classMap[$class])) { return true; } else { $class=str_replace('\\', '/', $class); $file= MVC .'/'. $class . '.php'; // p($file); if(is_file($file)) { include $file; self::$classMap[$class]=$class; } else { return false; } } } }
在core文件夹lib目录下创建路由文件route.php,给它一个命名空间,
<?php namespace core; class route { public function __construct() { p('route ok'); } }
为了加载load方法里面的类库,我们可以在入口文件进 行自动加载
spl_autoload_register('\core\mvc::load');
如果输出路由类的OK ,则自动加载成功!