封装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 ,则自动加载成功!