MVC配置加载类
来源:互联网 发布:python for 无限循环 编辑:程序博客网 时间:2024/05/18 22:14
之前我们的路由所有的配置都是写在当前文件中的接下来我们开始写一个配置类通过配置类去加载配置
在lib文件夹下创建conf.php
<?phpnamespace core\lib;class conf{static public $conf=array(); //$name 加载的配置名称 //$file 加载的文件 static public function get ($name,$file) { /* *1.判断配置文件是否存在 *2.判断对应的配置是否存在 *3.缓存配置 */ if(isset(self::$conf[$file])) { return self::$conf[$file][$name]; } else { $path = WTY.'\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); } }
在core目录下创建config文件夹用来存放配置文件
先建立一个路由的配置文件
route.php
<?phpreturn array( 'CTRL'=>'index',//默认控制器 'ATION'=>'index'//默认方法名)
接下来修改路由类通过配置类来加载默认项
<?php namespace core\lib; use core\lib\conf; //加入配置类 /* *路由 */ class route { public $ctrl; public $action; public function __construct() { //p($_SERVER); if(isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI']!='/') { $path=$_SERVER['REQUEST_URI']; $patharr=explode('/',trim($path,'/')); if(isset($patharr[0])) { $this->ctrl=$patharr[0]; unset($patharr[0]); } if(isset($patharr[1])) { $this->action =$patharr[1]; unset($patharr[1]); } else { $this->action =conf::get('ACTION','route');//通过配置项加载方法名 } //p($patharr); //url 多余的部分转换成 GET 参数 $count= count($patharr)+2; $i=2; while($i<$count) { if(isset($patharr[$i+1])) { $_GET[$patharr[$i]]=$patharr[$i+1]; } $i+=2; } unset($_GET['url']); //p($_GET); } else { $this->ctrl = conf::get('CTRL','route'); //通过配置项加载控制器名 $this->action = conf::get('ACTION','route'); } } }
同样我们在config下创建database.php数据库配置文件
static public function all($file) { if(isset(self::$conf[$file])) { return self::$conf[$file]; } else { $path = WTY.'\core\config\\'.$file.'.php'; if(is_file($path)) { $conf = include $path; self::$conf[$file] = $conf; return $conf; } else { throw new \Exception('没有配置文件'.$file); } } }
接下来修改model类
<?phpnamespace core\lib;use core\lib\conf;class model extends \medoo{ public function __construct() { $data=conf::all('database'); try{ parent::__construct($data['DSN'],$data['USERNAME'],$data['PASSWD'])eatch(\PDOException $e) { p($e->getMessage()); } } }}
去控制器中测试
$model = new \app\model\mvcModel();p($model);
0 0
- MVC配置加载类
- mvc(配置加载类)
- mvc配置加载类
- mvc配置加载类
- MVC封装(七)配置加载类
- mvc构建配置加载类和日志类
- MVC框架的封装(七)加载配置类
- MVC框架的封装(七)配置加载类
- 学习封装mvc框架(七)配置加载类
- PHP搭建自己的MVC框架9 配置加载类
- MVC框架的封装(七)加载配置类
- mvc自动加载类
- mvc之自动加载类
- mvc的制作简单的配置加载类和日志类
- 简单的mvc配置加载类与日志类的编写与解析
- MVC框架自己封装开启超神之路(上) 3-1配置加载类
- MVC----mvc.xml配置和mvcHelp类
- MVC中类的自动加载
- Tomcat 使用Redis存储Session
- aptana for mac 运行报错问题解决方案
- Centos 下搭建电子邮箱服务器postfix+dovecot
- 如果你也会C,那不妨了解下F(4):了解函数及常用函数
- Promise的用简要使用方式
- MVC配置加载类
- hdu1354
- 你真的了解UITextField吗?
- 《30天自制操作系统》12
- 初探和实现websocket心跳重连
- maven 搭建springmvc web项目
- 一切的源头
- 自定义View页面的滑动切换
- Meta标签详解