/*

* @Author: l.jirong l-jirong@qq.com

* @Date: 2020-03-14 11:52:20

* @LastEditors: l-jirong l-jirong@qq.com

* @LastEditTime: 2020-04-02 00:56:03

* @Description: 单入口方便身份验证、权限管理、统一路由

* ---路由形式为去以get参数的形式连接{去后缀的控制器名/模块类名}+{方法名}+{get参数},形如:

* 1 标准形式: index.php?c={controller}&a={actionName}&{get Params···}

* 2 直接访问模块: index.php?module={moduleClassName}&opCode={actionName}&{get Params···}

* 3 xml里转义&形式:index.php?c={controller}@@a={actionName}&{get Params···}

*/

// 项目目录结构变化后应检查此项配置,如果项目在服务器根目录此处改为 /

$siteRootDir = '/MicroFramework'; // 项目的根目录

/**

* ***************************************** 以下内容无需关注 *****************************************

* */

define('ROOTDIR',realpath('./'));

require_once ROOTDIR."/config/config.php";

require_once ROOTDIR."/src/bootstrap.php";

require_once ROOTDIR."/core/Init.php";

require_once ROOTDIR."/src/auth/Auth.php";

define('ROOROUTE',$_SERVER['REQUEST_SCHEME'].'://'.$_SERVER['SERVER_NAME'].$siteRootDir); // 根路由 /

$ctl_name = isset($_REQUEST['c']) ? ucfirst(trim($_REQUEST['c'])) : 'Base';

if(isset($_REQUEST['c']) && (strrpos($_REQUEST['c'],'@@') !== false)){ // 在xml内部&是非法字符,以@@代替

$_GET = array_merge($_GET,Init::getXmlRequestParams($ctl_name));

$ctl_name = explode('@@',$ctl_name)[0];

}

$ctl_name = $ctl_name.'Controller';

$action_name = isset($_GET['a']) ? trim($_GET['a']).'Action':'IndexAction';

$requset = array('params'=>array_merge($_GET,$_POST));

spl_autoload_register(

function($ctl_name){

if(file_exists(ROOTDIR.'/src/Controller/'.$ctl_name.'.php')){

require_once ROOTDIR.'/src/Controller/'.$ctl_name.'.php';

}

}

);

// 用户身份验证验证器···

if(!Auth::check()){

header('Location:'.ROOROUTE.'/login');

die;

}

$requset['user'] = Auth::getUser();

// 执行

if(class_exists($ctl_name) && method_exists($ctl_name,$action_name)){

$obj = new $ctl_name($entityManager);

$res = call_user_func(array($obj,$action_name),$requset);

$obj->response($res);

die;

}

http_response_code(404);

die('非法访问'); // 访问的模块不存在

一键复制

编辑

Web IDE

原始数据

按行查看

历史

micro framework php,index.php相关推荐

  1. .Net Micro Framework研究—实现SideShow窗体界面

    基于MF系统的Windows SideShow界面是非常炫的(如下图).既然微软能用.Net Micro Framework实现这么棒的界面效果,我想我们也能做到. (SideShow模拟器界面和游戏 ...

  2. 在.Net Micro Framework中显示汉字

    摘要:MF平台支持的字体是专有格式,扩展名为tinyfnt,需要用专门的转化工具才能把windows平台上的字体转换为tinyfnt字体.在.Net Micro Framework SDK中提供了一个 ...

  3. .NET Micro Framework常见问题问答

    问:.NET Micro Framework是什么? 答:请参见:http://blog.csdn.net/yefanqiu/article/details/5711770 官方网站:http://w ...

  4. .NET Micro Framework动态调用C/C++底层代码(原理篇)

    .NET Micro Framework和WinCE系统不同,从应用开发角度来说,仅支持C#开发(从V4.2版本开始,才支持VB.NET开发),而不像WinCE应用开发,既可以用C#/VB.Net,也 ...

  5. .NET Framework/.NET Compact Framework/.NET Micro Framework功能集比较

    该资料来源于三亚许云老师的 .NET Micro Framework的讲座,图片中红色部分表示支持的功能,绿色部分表示不支持,不过该图片我看了应该不是最新的,如.NET Compact Framewo ...

  6. 值得期待的.Net Micro Framework 3.0

    大约在今年秋天的时候,微软就会推出令人期待的.Net Micro Framework 3.0.在业内对微软的产品,有这个么说法,3.0之前的只能算体验版,只有在3.0之后,才是比较稳定可靠及实用的.. ...

  7. 【.Net Micro Framework PortingKit - 03】调试初步:点亮LED灯

    在上一篇文章<STM3210E平台构建>中,我们已经构建好了STM3210的基本平台,并且已经编译通过,所以我们下一步就要考虑用MDK进行下载调试了. 由于我们用到了片外SRAM,所以我们 ...

  8. 《玩转.NET Micro Framework 移植-基于STM32F10x处理器》--微软中国.NET Micro Framework项目组工程师所作之序...

                                  序 2006年才偶然知道.NET Micro Framework,那是无意间翻阅一本当年的<程序员>杂志,发现有一篇马宁所写的. ...

  9. 用VB.net开发.NET Micro Framework

    .NET Micro Framework从4.2版本开始就支持VB.net,这对VB爱好者是一个福音,想当年,我也是用VB6开发工控项目,开发了若干年呀,对VB还是比较有感情的,不过后来转到.NET平 ...

最新文章

  1. Exchange Server 2013 DAG高可用部署(三)-服务器角色安装
  2. tl-wn821n无线网卡驱动 linux,tl-wn821n win10驱动
  3. Windows UI风格的设计(9)
  4. 公司用的非标普通自动化用单片机还是plc_PLC的介绍
  5. celery 学习笔记定时任务和异步任务
  6. Python oct 函数 - Python零基础入门教程
  7. jsp编写程序实现写读留言板内容的功能
  8. 十五、Oracle学习笔记:序列(用于表字段值自增)
  9. python基础语法-缩进规则:
  10. oracle日期加一天的函数,关于oracle日期函数的介绍和使用
  11. hashmap java 排序_HashMap的排序
  12. excel公式编辑器_用EXCEL图表制作时钟「内容详细,配有大量动画操作,值得收藏」
  13. 基于Python+网络爬虫的兼职招聘就业信息数据可视化分析
  14. 设计模式---003代理模式(转载自我的老师 Alley-巷子)
  15. DirtyWordsFilter(脏字过滤)
  16. python斗地主出牌算法_python模拟斗地主发牌
  17. 据说是“缓存之王”? Caffeine高性能设计剖析
  18. pki与其他人交流时的 机密性 完整性 身份验证 的整个过程
  19. 出生日期输入输出------C语言
  20. 【Redis】Redis布隆过滤器工作原理与实战(Redis专栏启动)

热门文章

  1. python 执行shell 事务_python中执行shell的两种方法总结
  2. 模块d3d12.dll加载失败_语音控制模块
  3. python精彩编程200例百度_完整word版,python经典例题100道
  4. 无法嵌入互操作类型NationalInstruments.TestStand.Interop.UI.ExecutionViewOptions。请改用适用的接口...
  5. JVM垃圾收集器(2)
  6. Django之POST GET与前后端交互
  7. (五)cobbler自定义系统安装
  8. BZOJ2767:[JLOI2010]足彩投注
  9. Redis在CentOS 7上的安装部署
  10. 线程池——JAVA并发编程指南