class route
{
/** @var null 模块 */
private static $module = null;
/** @var null 控制器 */
private static $controller = null;
/** @var null 方法 */
private static $action = null;
/** @var 控制器url */
private static $controllerPath; /**
* route constructor.
* @param array $config url
*/
public function __construct($config = [])
{
$var_parse = explode('/', $config['r']);
if (count($var_parse) == 3){
self::$module = $var_parse[0];
self::$controller = ucwords($var_parse[1]).'Controller';
self::$action = $var_parse[2];
self::$controllerPath = APP_ROOT.'/controllers/'.self::$module.'/'.self::$controller.'.php';
}elseif(count($var_parse) == 2){
self::$controller = ucwords($var_parse[0]).'Controller';
self::$action = $var_parse[1];
self::$controllerPath = APP_ROOT.'/controllers/'.self::$controller.'.php';
}
} /**
* 执行控制器方法
* @return null
*/
public static function run(){
self::register();
$controller = new self::$controller;
if(method_exists($controller, self::$action)){
$action = self::$action;
$controller->$action();
}else{
header("HTTP/1.1 404 Not Found");
}
} /**
* 加载类
*/
public static function register(){
spl_autoload_register("self::loadClass");
} //自动加载
public static function loadClass(){
if(!file_exists(self::$controllerPath)){
header("HTTP/1.1 404 Not Found");
}
require_once self::$controllerPath;
}
}

php 自制简单路由类 望大神指点的更多相关文章

  1. 自己封装了一个EF的上下文类.,分享一下,顺便求大神指点

    using System; using System.Collections.Generic; using System.Configuration; using System.Data; using ...

  2. 耐克的定制页用canvas如何实现....跪求前端大神指点。

    选择鞋子的鞋底 鞋底会变色,也可以添加自己定制的id,这个东西看的是用canvas做的,但是小弟确实不知道怎么去做,求大神指点一二,不胜感激! nike的定制页地址:http://store.nike ...

  3. 真想用c#开发个 wp五笔输入法。。。奈何网上资料太少,源码都是c++写的。求大神指点!!!

    真想用c#开发个 wp五笔输入法...奈何网上资料太少,源码都是c++写的.求大神指点!!!!

  4. java数据类型易错点简单总结,欢迎大神前辈补充!谢谢

    数据类型那这边看似简单,花了我很长时间也就是才练到几成"功力"吧.还希望路过的大神在下面补充,菜鸟的我深受感谢! 首先看两个思考题 思考题1:请问下面这个有没有问题 double ...

  5. 读FCL源码系列之List<T>---让你知其所以然---内含疑问求大神指点

    序言 在.NET开发中,List<T>是我们经常用到的类型.前段时间看到其他部门小伙伴讨论“两个List(10W个元素)集合求并集,list1.Where(p=>list2.Cont ...

  6. VS2012+SQL2008+ODBC编程,第一篇博客,写的不好忘各位大神指点一二~

    近期写一个数据库的课程设计,用的是C++ MFC .最開始用的是ADO技术,可是苦于网上大部分的教程都是VC6.0的,对着教程敲了4,5遍还是执行不成功.我用的IDE是VS2012,毕竟VC6.0和V ...

  7. 求C#开发大神指点职业规划或者开发路数(以后怎么走),谢谢

    背景:作为一名Asp.net Web类的开发人员,工作时间有点长,5年不到,属于是天赋不太强,但是比较努力型的人,开发过程中那事情基本上都会,各种前后端框架也会使用.目前在研究分布式缓存应用 Memc ...

  8. MapXtreme+Asp.net 动态轨迹(请求大神指点)

    功能简介:在MapXtreme+Asp.net的环境下实现轨迹回放功能,经过两天的努力基本实现此功能.但还有部分问题需要解决,求大神们指点迷津,问题会在结尾处提出. 客户端前台页面 <asp:S ...

  9. #String类简述(小白理解,小白编写,欢迎大神指点,小白跪谢)

    @ 目录 一.前言(可忽略) 二.String变量的认知 三.String类的构造方法 四.String类的基本方法 4.1 toString()方法 4.2 equals()方法 4.3 equal ...

随机推荐

  1. Fibonacci_array

    重新开始学习C&C++ Courage is resistance to fear, mastery of fear, not abscence of fear //斐波那契数列 Fibona ...

  2. C# 特性(Attribute)之Serializable特性

    转载自:https://www.cnblogs.com/GreenLeaves/p/6753261.html 介绍之前,先说一个重要的知识点: Serializable属性并不序列化类,它只是一个标签 ...

  3. Docker外包团队 2019年3月更新 企业如何使用Docker

    很难将Docker所带来的影响统一的用一种特质来说.当使用Docker执行好时,它对组织,团队,开发者以及运维人员有多层次的好处.Docker使得架构设计简单化,因为所有的应用都将一致的从外部来透视主 ...

  4. Linux简单线程池实现(带源码)

    这里给个线程池的实现代码,里面带有个应用小例子,方便学习使用,代码 GCC 编译可用.参照代码看下面介绍的线程池原理跟容易接受,百度云下载链接: http://pan.baidu.com/s/1i3z ...

  5. Winfrom BackgroundWorker

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Reflection ...

  6. 排产的两种方式(前推式与后拉式)在Optaplanner上的体现

    生产计划的约束 在制定生产计划过程中,必然是存在某些制约因素,满足某些需求才能进行的,或是交期保证.或是产能限制.或是关键工序制约.即TOC理论 - 任何系统至少存在着一个制约因素/瓶颈:否则它就可能 ...

  7. Unix即IDE

    前言 在图形界面下大家都想要这种能够集成在一起的工具,那是因为这类窗口应用除了用复制粘贴,没有别的方法使他们更好地协同工作,它们缺失一种 共用接口(common interface) . 有关这个问题 ...

  8. Linux 调试打印时间和颜色

    Linux调试打印时间和颜色 #include <sys/time.h> #include <unistd.h> void print_time(void) { struct ...

  9. openFileOutput和openFileInput还有FileOutStream与openFileOutput

    FileOutputStream fos = openFileOutput("",MODE_PRIVATE); fos.write("private".getB ...

  10. .net 超长URL请求返回404错误-解决方法

    <system.webServer> <security> <requestFiltering> <requestLimits maxQueryString= ...