封装框架(六)加载控制器
来源:互联网 发布:java中set集合的用法 编辑:程序博客网 时间:2024/05/29 10:11
接下来我们要建我们的控制器
首先我们在根目录下建一个目录叫app 在app下建一个目录叫controllers用来存放我们的控制器
再建一个控制器叫IndexController.php
然后在核心文件core.php中实例话这个控制器<?phpnamespace app\controllers;class IndexController{ public function index(){ echo 'This is index'; }}
<?phpnamespace core;use core\lib\route;class core{ //防止重复引用类 public static $classMap = array(); static public function run() { $route = new route();//实例化路有类 $controller = $route->ctrl;//获取控制器名 $action = $route->action;//获取方法名 $ctrlfile = APP.'/controllers/'.ucfirst($controller).'Controller.php';//控制器文件路径 $ctrlClass = '\\'.MODULE.'\controllers\\'.ucfirst($controller).'Controller'; if(is_file($ctrlfile)){//验证这个文件是否存在 include $ctrlfile;//包含控制器文件 $ctrl = new $ctrlClass();//实例化控制器 $ctrl->$action();//调用方法 } else { throw new \Exception('找不到控制器'.$ctrlfile); } } //自动加载类库 static public function load($class) { //echo 123; //判断$classMap中是否有这个类 if(isset($classMap[$class])){ return true; } else { $class = str_replace('\\','/',$class); $file = PATH.'/'.$class.'.php'; //判断这个文件是否存在 if(is_file($file)) { include $file; //如果引入成功的话,就放到$classMap数组中 self::$classMap[$class] = $class; } else { return false; } } }}在index.php中定义一个常量MODULE
<?php/** * 入口文件 * 1、定义常量 * 2、加载函数库 * 3、启动框架 */define('PATH',getcwd());//获取当前框架所在的目录define('CORE',PATH.'/core');//框架核心文件所在的目录define('APP',PATH.'/app');//项目文件目录:控制器、模型等等define('MODULE','app');//项目文件目录:控制器、模型等等define('DEBUG',true);//是否开启调试模式if(DEBUG) { ini_set('display_error','On');}else{ ini_set('display_error','Off');}include CORE.'/common/function.php';//加载函数库include CORE.'/core.php';//加载核心文件spl_autoload_register('\core\core::load');//当我们new的类不存在的时候它会出发这个load方法\core\core::run();
0 0
- 封装框架(六)加载控制器
- 学习mvc框架封装(四)加载控制器
- MVC框架自己封装开启超神之路(上) 2-4加载控制器
- MVC的封装(四)加载控制器
- MVC的封装(四)加载控制器
- MVC封装(四)加载控制器
- 我的框架--QiCai(加载控制器)
- (封装)容器视图控制器(适用于新闻框架)
- MVC框架的封装(五)控制器中连接数据库
- MVC框架的封装(五)控制器中连接数据库
- 封装框架(四)自动加载类
- 封装框架(九)配置加载类
- 封装框架(十一)composer加载
- tp控制器------(六)
- php搭建mvc框架四(加载控制器)
- MVC框架的封装(六)视图类
- MVC框架的封装(六)试图类
- 如何封装一个自己的mvc框架(六)
- 对所有Activity和Fragment统一添加下拉刷新和上拉加载
- Python找不到模块
- 把源串与密串进行异或,结果就是KEY。
- hadoop安装和维护09--深入理解Linux修改hostname
- MVC封装(二)自动加载类
- 封装框架(六)加载控制器
- xammp部署多个站点、部署laravel项目
- [USB协议]USB3.1-Chapter7-Link Layer 数据链路层概览
- 逻辑回归回顾
- spring概念
- Python3 基础:dict和set
- 已经有科学了?还需要自然辩证法吗?
- 蓝桥 1的个数
- c语言使用小技巧之读取图片路径和label