框架运行流程


1.入口文件

<?php/*** 入口文件* 1.定义常量* 2.加载函数库* 3.启动框架*/define('IMOOC',realpath('./'));
define('CORE',IMOOC.'/core');
define('APP',IMOOC.'/app');define('DEBUG',true);if (DEBUG) {ini_set('display_error','On');
} else {ini_set('display_error','Off');
}require IMOOC . '/' . 'core/imooc.php';spl_autoload_register('\\core\\imooc::load');\core\imooc::run();

2.自动加载类

<?phpnamespace core;class imooc
{public static function run(){$route = new \core\lib\route();var_dump($route);}public static function load($class){//自动加载类require IMOOC . '/' . $class . '.php';}
}

3.路由类

<?phpnamespace core\lib;class route
{private $ctrl = 'index';private $action = 'index';/*** route constructor.*/public function __construct(){// 正常网址 xxx.com/index/index//        xxx.com/index.php/index/index/****  1.隐藏 index.php*  2.获取 url 参数部分*  3.返回对应的控制器和方法*/if (isset($_SERVER['REQUEST_URI']) && $_SERVER['REQUEST_URI'] != '/') {// /index/index$path = $_SERVER['REQUEST_URI'];$patharr = explode('/',trim($path,'/'));if (isset($patharr[0])) {$this->ctrl = $patharr[0];} else {$this->ctrl = 'index';}unset($patharr[0]);if (isset($patharr[1])) {$this->action = $patharr[1];} else {$this->action = 'index';}unset($patharr[1]);// url 多于部分转换为参数// index/index/id/1/test/3$count = count($patharr);var_dump($count);$i = 2;while ($i <= $count) {//防止数组越界if (!isset($patharr[$i + 1])) {break;}$_GET[$patharr[$i]] = $patharr[$i + 1];$i = $i + 2;}var_dump($_GET);} else {$this->ctrl = 'index';$this->action = 'index';}}
}

127.自己开发一个 PHP 框架相关推荐

  1. asp.net web开发框架_用Python开发一个Web框架

    一.Web框架 首先我们今天要做的事是开发一个Web框架.可能听到这你就会想.是不是很难啊?这东西自己能写出来? 如果你有这种疑惑的话,那就继续看下去吧.相信看完今天的内容你也能写出一个自己的Web框 ...

  2. 如何从零开始写一个 web 框架?

    ‍ 作为一线开发 Web 服务的工程师,我用过不少语言的不少框架,尤其近几年轮子层出不穷,每次刚用熟练一个,就有更新.更好的出现了.日常疲于奔命学习新框架,一次次陷入"死循环". ...

  3. 为什么 Web 开发人员需要学习一个 JavaScript 框架?

    原文链接 可能当我们结束本文时,一个新的 Javascript 框架已经在某处启动了.但这确实不在我们的控制范围内.因此,我们应该简单地继续我们所拥有的.至少,由于免责声明,我们可以确定我们不是在发明 ...

  4. Java:使用 Java 开发的一个异常处理框架

    Java:使用 Java 开发的一个异常处理框架 参考文章: (1)Java:使用 Java 开发的一个异常处理框架 (2)https://www.cnblogs.com/happyframework ...

  5. 通过python各种开源库,开发一个适合大部分公司测试项目框架,确定名字AutoTestProjects

    通过python各种开源库,开发一个适合大部分公司测试项目框架,确定名字AutoTestProjects 一,简介 1.目前市场上的框架一般都需要码农进行编写,对测试小白非常的不友好,而且现在整个IT ...

  6. iOS-通过Message框架开发一个Sticker Pack(无需代码)(第一篇)

    一.概述 iOS 10 引入了Message框架,开发者可以为苹果内置的Messages应用开发扩展. 目的:通过开发一个应用扩展,可以让用户个能应用在Message应用中交互. Message框架支 ...

  7. android中的插件开发框架,设计并开发一个 Android 的插件化框架

    结合动态加载系列文章的分析,现在开始设计并开发一个 Android 的插件化框架,命名为 Frontia.Frontia 有 "前端" 的意思,寓意着 Android 插件能像前端 ...

  8. jQuery框架开发一个最简单的幻灯效果

    在线演示 在这个课程中,我们将介绍如何使用jQuery来开发一个最简单的图片幻灯效果. 立刻观看互动课程:jQuery框架开发一个最简单的幻灯效果 阅读原文:jQuery框架开发一个最简单的幻灯效果

  9. 如果用seagull php框架开发一个类似zen cart,Oscommerce,magento这样的模块会什么样

    Os,zen cart的成功是为什么,是因为开源,是因为低端(使用需要小,易于使用,普通程序员可轻易学习),我想更多的是因为庞大市场的存在.尽管它们存在的诸多的问题,然而一个免费的系统,一个容易让程序 ...

  10. 一个快速开发APP的框架:AndroidQuick

    公众号[国民程序员]回馈粉丝福利: 现金红包和送书活动火热进行中,点击参与! 我的新书<Android App开发入门与实战>已于2020年8月由人民邮电出版社出版,欢迎购买. 书籍详情请 ...

最新文章

  1. 不用“背”单词,一个方法从普通二本到哥伦比亚大学:我是如何做到的?
  2. 领英Linkedin信息搜集工具InSpy
  3. Tableau研学小课堂(part3)--Tableau数据可视化
  4. CRM 4.0得到用户个人信息
  5. Bailian4077 出栈序列统计【卡特兰数】(vijos P1122)
  6. 查看redis安装目录
  7. 阮一峰ES6旅程:入门布局
  8. Android-Binder机制
  9. TI公司电话面试 ---- 问题回忆录 2012年8月20
  10. 一个离职程序员的找工作历程(2021.4.28更新)
  11. 《阿凡达》《泰坦尼克号》
  12. android自定义url协议,Android平台设置UrlSchemes,实现被第三方应用调用
  13. 数据禾|全国10米DEM数字高程数据
  14. 天池竞赛-金融风控-task1
  15. 要不是这个沙雕网站,我这辈子都见不到这么多沙雕网站!
  16. 解决iphone的短信中心号码设置错误的方案
  17. 面试问题:如何开展接口测试
  18. 口令攻击的理解和密码破解工具的使用
  19. Vue实现二选一、菜单更多功能:
  20. 2019.01.11【BZOJ3308】【ProjectEuler335】 九月的咖啡店/Maximal coprime subset(费用流)

热门文章

  1. C 中细节问题的试题
  2. 一些会遗忘的代码属性
  3. Myeclipse中JSP页面快捷键注释失效解决方法
  4. Binary translation is incompatible with long mode on this platform
  5. 源码装置vsftpd
  6. hdu1247 Hat’s Words 字符串模拟
  7. NHibernate剖析:Mapping篇之Mapping-By-Code(2):运用ModelMapper
  8. linux从入门到精通张帆,Linux基础之文件系统简介及其系统管理工具
  9. 玻尿酸市场价格有很多,你是赚了还是亏了?
  10. 一年总结:2016.7.9 - 2017.7.9