您的位置:首页 > 其它

如何封装一个自己的mvc框架(四)

2016-12-25 19:46 232 查看
之前写好的框架看起来太low了,这一节我们增加我们框架的健壮性

我们需要做的是加载配置类,这样我们的框架看起来就比较的完善了

首先创建配置信息文件目录

例如路由信息route.php

<?php

return array(

    'CONTROL'=>'index',

    'ACTION'=>'index'

);

还有数据库信息

<?php

return array(

    'DSN'=>'mysql:host=localhost;dbname=test',

    'USERNAME'=>'root',

    'PASSWORD'=>'root'

);

然后在我们的的核心文件目录中创建一个配置类文件,获取配置信息

<?php

namespace core\lib;

class config

{

    //定义数组缓存配置

    static public $conf=array();

    //获取配置某一项信息

    static public function get($name,$file)

    {

        //首先判断文件是否缓存

        if (isset(self::$conf[$file])) {

            //如果文件已缓存

            return self::$conf[$file][$name];

        }else{

            //p(1);

            //判断配置文件是否存在

            $path=ROOT."/core/config/".$file.".php";

            if (is_file($path)) {

                $conf=include $path;

                //判断配置是否存在

                if (isset($conf[$name])) {

                    //缓存配置

                    self::$conf[$file]=$conf;

                    return $conf[$name];

                }else{

                    throw new  \Exception('没有配置项'.$name);

                }

            }else{

                throw new  \Exception('找不到配置文件'.$file);

            }

        }    

    }

    //获取配置全部信息

    static public function all($file)

    {

        //首先判断文件是否缓存

        if (isset(self::$conf[$file])) {

            //如果文件已缓存

            return self::$conf[$file];

        }else{

            //p(1);

            //判断配置文件是否存在

            $path=ROOT."/core/config/".$file.".php";

            if (is_file($path)) {

                $conf=include $path;

                //缓存配置

                self::$conf[$file]=$conf;

                return $conf;

            }else{

                throw new  \Exception('找不到配置文件'.$file);

            }

        }    

    }

}

封装完配置类之后,我们就可以重新配置之前类库里面的配置信息

use core\lib\config;

route.php中的

$route=config::all('route');

model.php中的

$route=config::all('database');

配置完成后在默认控制其中实例化模型类,获取路由信息

<?php

namespace app\controllers;

class indexController extends \core\mymvc

{

    public function index(){

        p(1234);

        $model=new \core\lib\model();

        $temp1= \core\lib\config::get('CONTROL','route');

        $temp= \core\lib\config::get('ACTION','route');

        p($temp);

        p($temp1);

    }

}

输出结果

1234

index

index


说明没有出现错误运行正常,配置成功!!

欲知后事如何请听下回分解......
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: