zoukankan      html  css  js  c++  java
  • 怎样封装一个自己的mvc框架(四)

    之前写好的框架看起来太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 corelib;

    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 corelibconfig;

    route.php中的

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

    model.php中的

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

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

    <?php 
    namespace appcontrollers;
    class indexController extends coremymvc
    {
        public function index(){
            p(1234);
            $model=new corelibmodel();


            $temp1= corelibconfig::get('CONTROL','route');
            $temp= corelibconfig::get('ACTION','route');
            p($temp);
            p($temp1);
        }
    }

    输出结果

    1234
    index
    index

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

  • 相关阅读:
    仿蘑菇街界面(2)
    centos安装qt开发环境
    ubuntu14.04 qt4 C++开发环境搭建
    ubuntu qt X11开发环境
    ubuntu14.04 qt4开发环境搭建(vnc use gnome)
    ubuntu gnome vnc
    ubuntu 14.04 vnc use gnome(ubuntu14.04 gnome for vnc4server)
    C++面向对象编程初步
    openStack CI(Continuous interaction)/CD(Continuous delivery) Gerrit/Jenkins安装及集成,插件配置
    shell programs
  • 原文地址:https://www.cnblogs.com/quanzhiguo/p/7363371.html
Copyright © 2011-2022 走看看