怎样封装一个自己的mvc框架(四)

it2022-05-24  65

之前写好的框架看起来太low了,这一节我们增加我们框架的健壮性

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

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

例如路由信息route.PHP

<?phpreturn array(    'CONTROL'=>'index',    'ACTION'=>'index');

还有数据库信息

<?phpreturn 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

 

 

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

 

转载于:https://www.cnblogs.com/quanzhiguo/p/7363371.html

相关资源:Android MVC框架 网络封装

最新回复(0)