Autumn中文文档0:为什么使用Autumn
项目地址:https://github.com/bit128/autumn
Autumn存在的意义
在实际项目开发中,现有的框架所提供的功能并没有被完全使用,甚至百分之三十的类都用不上。 我静下心来思考其中的缘由,并不是我们的系统不够“复杂”,也不是开发者的技术水平不足,反而我们在框架之上又扩展设计了许多漂亮的模块和子系统。所以,这肯定是存在不合理的设计。
我们设计框架的初衷是什么?答案肯定是为了提升开发效率。那又该怎样设计?当然是在大量重复、可重用的地方做优化。所以,我认为框架的意义是做项目的基石结构。就像是盖房子这样一个简单的道理:混凝土地基、钢筋机构才是真正的“框架”。百分之九十的房子都是基于这个架构的。可在现实中绝大多数的PHP框架不仅提供了结构,更提供了实现方式,已经把每个细节做到了极致。就像是出售的精装修商品房,交付前已经把你不喜欢的牌子电器都布置好了,不管你喜不喜欢他的装修风格。
Autumn框架的出发点是php作者的原话:php代码越接近原生,效率越高。php本身就是解释型语言,不合理的逻辑设计、过多的封装都会导致其性能的下降和理解的困难度。而且现有的框架总是会有不同程度的耦合度,总想设计成全能型框架,可惜实际使用的功能很少。
Autumn存在的意义就是提供最小可运行、高效率、高性能、零耦合的PHP应用框架。核心通过模块化的方式实现依赖注入、单例托管等特性,它完美实现了MVC的分层架构,类Yii的风格实现,可以满足PHP项目对于框架的基础需求。
核心架构图
Autumn的设计灵感来源于SpringMVC框架。
Autumn存在一个核心容器,用来托管运行时各种组件模块的实例。Autumn容器负责类的创建、实例化以及整个生命周期的托管。无论是核心库或者扩展库中的模块只要按照一定的标准设计,都可以被无缝注入Autumn核心容器,并在任何地方需要的时候,由Autumn容器提供。
框架运行流程图
Autumn是单一入口实现的框架。
- 入口文件负责框架核心容器的载入、初始化配置工作。
- 核心配置模块首先被Autumn核心容器加载,提供全局的配置属性操作。
- 载入路由解析模块,对请求分析解析后,封装成HttpRequest。
- MVC模块开始处理居图业务逻辑。
- MVC将结果封装成HttpResponse后返回给客户端。
Autumn中文文档0:为什么使用Autumn相关推荐
- HBase 中文文档0.97
中文文档 转载于:https://www.cnblogs.com/mrxiaohe/p/6691423.html
- Theano 中文文档 0.9 - 7.2.5 循环
7.2.5 循环 译者:Python 文档协作翻译小组,原文:Loop. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作翻译小组人手紧缺,有兴 ...
- Theano 中文文档 0.9 - 7.1.2 NumPy新手
7.1.2 NumPy新手 译者:Python 文档协作翻译小组,原文:NumPy refresher. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python ...
- Theano 中文文档 0.9 - 7.2.6 Theano如何处理形状信息
7.2.6 Theano如何处理形状信息 译者:Python 文档协作翻译小组,原文:How Shape Information is Handled by Theano. 本文以 CC BY-NC- ...
- Theano 中文文档 0.9 - 7.2.4 条件
7.2.4 条件 译者:Python 文档协作翻译小组,原文:Conditions. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作翻译小组人 ...
- Theano 中文文档 0.9 - 7.2.3 Theano中的导数
7.2.3 Theano中的导数 译者:Python 文档协作翻译小组,原文:Derivatives in Theano. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出 ...
- Theano 中文文档 0.9 - 7.2.2 更多示例
7.2.2 更多示例 译者:Python 文档协作翻译小组,原文:More Examples. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作 ...
- Theano 中文文档 0.9 - 7.2.1 起手式 —— 代数
7.2.1 起手式 -- 代数 译者:Python 文档协作翻译小组,原文:Baby Steps - Algebra. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. ...
- Theano 中文文档 0.9 - 7.1.1 Python教程
7.1.1 Python教程 译者:Python 文档协作翻译小组,原文:Python tutorial. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Pytho ...
- Theano 中文文档 0.9 - 7. 教程
7. 教程 译者:Python 文档协作翻译小组,原文:Tutorial. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作翻译小组人手紧缺,有 ...
最新文章
- mxmkc编译器参数!
- iOS 开发中使用 NSURLProtocol 拦截 HTTP 请求
- Python jsonpath库的使用:解析json并将结果保存到文件
- 0与1世界的初级编程篇之C语言
- linux网络编程--服务器模型(epoll/select/poll)
- vs2019配置opencv_VS2019下Opencv配置
- Unity内嵌浏览器插件(Android、iOS、Windows)
- 遭遇希捷硬盘“固件门”,经销商仅赔了新硬盘,原来硬盘中数据全部丢失,郁闷。。。...
- 直线分割平面的公式_直线分割平面-jiangwen127-ChinaUnix博客
- Cause: java.sql.SQLException: Incorrect string value: ‘\xF4\x80\x80\x82\xF4\x80...‘ for column ‘xxx‘
- Lora、zigbee比较
- 等额本息还款法贷款利息计算方法及还款计划
- 低功耗蓝牙芯片基础知识
- 题解-表达式括号匹配
- Single TPR论文解读
- 低频功率放大器参考电路图解大全
- 称重软件地磅称重在实际应用中需要注意哪些?
- 判断浏览器系统是IOS还是PC还是android
- ftp上传工具中文版,6款最好用的ftp上传工具中文版,使用指南
- 概率论与数理统计期末复习题(3)
热门文章
- 【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩 纹理映射技术 一
- 数学原理-高等数学复习笔记 ——1.2 泰勒公式 罗尔中值定理与拉格朗日中值定理(附加多个实战题目)
- Excel表Ctrl+v和Ctrl shift+v有什么区别_Excel表格操作技巧,超实用
- 《多收了三五斗》大学毕业版 (转)
- whisper客服源码_whisper客服系统兼容HTTPS方案
- 个人博客logo如何设计?案例合集参考
- ubuntu 14.04 更新 flash
- IMDB Top 250电影推荐
- java 定义16进制_java数据类型(大小等),变量定义,各进制书写方法
- windows家庭版关闭windows defender