搭建一个简单的mvc(一)
来源:互联网 发布:ubuntu 进入boot 编辑:程序博客网 时间:2024/06/04 23:36
框架的基本结构:
先定义一个入口文件index.php.作用是1:定义常量;2:加载函数库;3:启动框架;
header("content-type:text/html;charset=utf-8");define('MULU',trim(str_replace('\\','/',__DIR__)));//定义框架所在目录define('CORE',MULU.'/core');//框架文件所在目录define('APP',MULU.'/app');//项目文件所处目录define('MODULE','app');//项目文件所处目录define('DEBUG',true);//是否开启调错模式if(DEBUG){ ini_set('display_errors','On');}else{ ini_set('display_errors','Off');}include CORE.'/common/function.php';//里面有一个打印的p方法include CORE.'/bawei.php';spl_autoload_register('\core\bawei::load');//自动加载类库\core\bawei::run();
core核心文件作用是加载类库
route里指明调用哪个控制器
namespace core;use route;class bawei{ public static $classMap=array(); static public function run(){ $route = new \core\lib\route(); $controllerClass=$route->controller; $action=$route->action; $controllerFile=APP.'/controller/'.$controllerClass.'Controller.php'; $controllerClass = '\\'.MODULE.'\controller\\'.$controllerClass.'Controller'; if(is_file($controllerFile)){ include $controllerFile; $controller=new $controllerClass(); $controller->$action(); }else{ throw new \Exception('找不到控制器'.$controllerClass); } } static public function load($class){ if(isset($classMap[$class])){ return true; }else{ $class = str_replace('\\','/',$class); $file=MULU.'/'.$class.'.php'; if(is_file($file)){ include $file; self::$classMap[$class] = $class; }else{ return false; } } }lib里存放扩展类
namespace core\lib;class route{ public $controller; public $action; public function __construct(){ if(isset($_SERVER['REQUEST_URI'])&&$_SERVER['REQUEST_URI'] != '/'){ $path = $_SERVER['REQUEST_URI']; $patharr = explode('/', trim($path, '/')); if(isset($patharr[0])){ $this->controller=$patharr[0]; } unset($patharr[0]); if(isset($patharr[1])){ $this->action=$patharr[1]; unset($patharr[1]); }else{ $this->action=config::get('ACTION','route'); } $count=count($patharr)+2; $i=2; while($i<$count){ if(isset($patharr[$i+1])){ $_GET[$patharr[$i]]=$patharr[$i+1]; } $i=$i+2; } p($_GET); }else{ $this->controller=config::get('CONTROLLER','route'); $this->action=config::get('ACTION','route'); } }}
model里面加载数据库文件
namespace core\lib;use core\lib\config;class model extends \PDO{ public function __construct(){ $database=config::all("database"); try{ parent::__construct($database['DSN'],$database['USERNAME'],$database['PASSWORD']); }catch (\PDOException $e){ p($e->getMessage()); } }}
0 0
- 搭建一个简单的mvc(一)
- 搭建一个简单的Spring MVC框架
- 搭建一个spring mvc框架(一)
- MVC的简单搭建(二)
- 搭建Spring MVC环境进行简单的增、删、改、查(一)
- Spring4 Spring MVC实战(一)——读《Spring in action》搭建最简单的MVC
- 简单的mvc框架(一)
- 自己动手写一个简单的mvc框架(一)前期准备
- MVC入门的一个例子(一)
- Spring mvc(1) 搭建一个最简单的Spring mvc, 以及最简单的logback的配置
- Spring MVC(一)搭建
- 一个简单的MVC实例
- struts2.x学习一(搭建一个简单的Struts2应用)
- 搭建一个简单、易用的 Android 项目框架之BaseActivity(一)
- 用 Matlab GUI搭建一个简单的CBIR图像检索系统(一)
- Go语言进行web开发(一) 搭建一个简单的web服务器
- DNS服务器概念的简单的介绍,与搭建一个简单的DNS名称缓存服务器,实现域名解析(一)
- Struts2的简单搭建(一)
- springmvc 基础
- Linux/Ubuntu下解压命令
- 如何测试sql语句性能,提高执行效率
- Unicode格式字符串之间转换
- ThreadPoolExcutor源码分析
- 搭建一个简单的mvc(一)
- 局部代码块
- 栈增长方向与大端/小端问题
- 如何测试sql语句性能,提高执行效率
- 极客学院----H5的相关笔记----css基础(一)
- RxJava是什么?
- [C++编程] -- 虚函数与多态
- TEC1701.WebADI开发技术总结 - 第六章 Web ADI开发常见问题(6/6)
- 你该如何去阅读拥有海量代码行的项目