micro framework php,index.php
/*
* @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相关推荐
- .Net Micro Framework研究—实现SideShow窗体界面
基于MF系统的Windows SideShow界面是非常炫的(如下图).既然微软能用.Net Micro Framework实现这么棒的界面效果,我想我们也能做到. (SideShow模拟器界面和游戏 ...
- 在.Net Micro Framework中显示汉字
摘要:MF平台支持的字体是专有格式,扩展名为tinyfnt,需要用专门的转化工具才能把windows平台上的字体转换为tinyfnt字体.在.Net Micro Framework SDK中提供了一个 ...
- .NET Micro Framework常见问题问答
问:.NET Micro Framework是什么? 答:请参见:http://blog.csdn.net/yefanqiu/article/details/5711770 官方网站:http://w ...
- .NET Micro Framework动态调用C/C++底层代码(原理篇)
.NET Micro Framework和WinCE系统不同,从应用开发角度来说,仅支持C#开发(从V4.2版本开始,才支持VB.NET开发),而不像WinCE应用开发,既可以用C#/VB.Net,也 ...
- .NET Framework/.NET Compact Framework/.NET Micro Framework功能集比较
该资料来源于三亚许云老师的 .NET Micro Framework的讲座,图片中红色部分表示支持的功能,绿色部分表示不支持,不过该图片我看了应该不是最新的,如.NET Compact Framewo ...
- 值得期待的.Net Micro Framework 3.0
大约在今年秋天的时候,微软就会推出令人期待的.Net Micro Framework 3.0.在业内对微软的产品,有这个么说法,3.0之前的只能算体验版,只有在3.0之后,才是比较稳定可靠及实用的.. ...
- 【.Net Micro Framework PortingKit - 03】调试初步:点亮LED灯
在上一篇文章<STM3210E平台构建>中,我们已经构建好了STM3210的基本平台,并且已经编译通过,所以我们下一步就要考虑用MDK进行下载调试了. 由于我们用到了片外SRAM,所以我们 ...
- 《玩转.NET Micro Framework 移植-基于STM32F10x处理器》--微软中国.NET Micro Framework项目组工程师所作之序...
序 2006年才偶然知道.NET Micro Framework,那是无意间翻阅一本当年的<程序员>杂志,发现有一篇马宁所写的. ...
- 用VB.net开发.NET Micro Framework
.NET Micro Framework从4.2版本开始就支持VB.net,这对VB爱好者是一个福音,想当年,我也是用VB6开发工控项目,开发了若干年呀,对VB还是比较有感情的,不过后来转到.NET平 ...
最新文章
- Exchange Server 2013 DAG高可用部署(三)-服务器角色安装
- tl-wn821n无线网卡驱动 linux,tl-wn821n win10驱动
- Windows UI风格的设计(9)
- 公司用的非标普通自动化用单片机还是plc_PLC的介绍
- celery 学习笔记定时任务和异步任务
- Python oct 函数 - Python零基础入门教程
- jsp编写程序实现写读留言板内容的功能
- 十五、Oracle学习笔记:序列(用于表字段值自增)
- python基础语法-缩进规则:
- oracle日期加一天的函数,关于oracle日期函数的介绍和使用
- hashmap java 排序_HashMap的排序
- excel公式编辑器_用EXCEL图表制作时钟「内容详细,配有大量动画操作,值得收藏」
- 基于Python+网络爬虫的兼职招聘就业信息数据可视化分析
- 设计模式---003代理模式(转载自我的老师 Alley-巷子)
- DirtyWordsFilter(脏字过滤)
- python斗地主出牌算法_python模拟斗地主发牌
- 据说是“缓存之王”? Caffeine高性能设计剖析
- pki与其他人交流时的 机密性 完整性 身份验证 的整个过程
- 出生日期输入输出------C语言
- 【Redis】Redis布隆过滤器工作原理与实战(Redis专栏启动)
热门文章
- python 执行shell 事务_python中执行shell的两种方法总结
- 模块d3d12.dll加载失败_语音控制模块
- python精彩编程200例百度_完整word版,python经典例题100道
- 无法嵌入互操作类型NationalInstruments.TestStand.Interop.UI.ExecutionViewOptions。请改用适用的接口...
- JVM垃圾收集器(2)
- Django之POST GET与前后端交互
- (五)cobbler自定义系统安装
- BZOJ2767:[JLOI2010]足彩投注
- Redis在CentOS 7上的安装部署
- 线程池——JAVA并发编程指南