项目地址:https://github.com/bit128/autumn

Autumn存在的意义

在实际项目开发中,现有的框架所提供的功能并没有被完全使用,甚至百分之三十的类都用不上。 我静下心来思考其中的缘由,并不是我们的系统不够“复杂”,也不是开发者的技术水平不足,反而我们在框架之上又扩展设计了许多漂亮的模块和子系统。所以,这肯定是存在不合理的设计。

我们设计框架的初衷是什么?答案肯定是为了提升开发效率。那又该怎样设计?当然是在大量重复、可重用的地方做优化。所以,我认为框架的意义是做项目的基石结构。就像是盖房子这样一个简单的道理:混凝土地基、钢筋机构才是真正的“框架”。百分之九十的房子都是基于这个架构的。可在现实中绝大多数的PHP框架不仅提供了结构,更提供了实现方式,已经把每个细节做到了极致。就像是出售的精装修商品房,交付前已经把你不喜欢的牌子电器都布置好了,不管你喜不喜欢他的装修风格。

Autumn框架的出发点是php作者的原话:php代码越接近原生,效率越高。php本身就是解释型语言,不合理的逻辑设计、过多的封装都会导致其性能的下降和理解的困难度。而且现有的框架总是会有不同程度的耦合度,总想设计成全能型框架,可惜实际使用的功能很少。

Autumn存在的意义就是提供最小可运行、高效率、高性能、零耦合的PHP应用框架。核心通过模块化的方式实现依赖注入、单例托管等特性,它完美实现了MVC的分层架构,类Yii的风格实现,可以满足PHP项目对于框架的基础需求。

核心架构图

Autumn的设计灵感来源于SpringMVC框架。

Autumn存在一个核心容器,用来托管运行时各种组件模块的实例。Autumn容器负责类的创建、实例化以及整个生命周期的托管。无论是核心库或者扩展库中的模块只要按照一定的标准设计,都可以被无缝注入Autumn核心容器,并在任何地方需要的时候,由Autumn容器提供。

框架运行流程图

Autumn是单一入口实现的框架。

  1. 入口文件负责框架核心容器的载入、初始化配置工作。
  2. 核心配置模块首先被Autumn核心容器加载,提供全局的配置属性操作。
  3. 载入路由解析模块,对请求分析解析后,封装成HttpRequest。
  4. MVC模块开始处理居图业务逻辑。
  5. MVC将结果封装成HttpResponse后返回给客户端。

Autumn中文文档0:为什么使用Autumn相关推荐

  1. HBase 中文文档0.97

    中文文档 转载于:https://www.cnblogs.com/mrxiaohe/p/6691423.html

  2. Theano 中文文档 0.9 - 7.2.5 循环

    7.2.5 循环 译者:Python 文档协作翻译小组,原文:Loop. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作翻译小组人手紧缺,有兴 ...

  3. Theano 中文文档 0.9 - 7.1.2 NumPy新手

    7.1.2 NumPy新手 译者:Python 文档协作翻译小组,原文:NumPy refresher. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python ...

  4. Theano 中文文档 0.9 - 7.2.6 Theano如何处理形状信息

    7.2.6 Theano如何处理形状信息 译者:Python 文档协作翻译小组,原文:How Shape Information is Handled by Theano. 本文以 CC BY-NC- ...

  5. Theano 中文文档 0.9 - 7.2.4 条件

    7.2.4 条件 译者:Python 文档协作翻译小组,原文:Conditions. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作翻译小组人 ...

  6. Theano 中文文档 0.9 - 7.2.3 Theano中的导数

    7.2.3 Theano中的导数 译者:Python 文档协作翻译小组,原文:Derivatives in Theano. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出 ...

  7. Theano 中文文档 0.9 - 7.2.2 更多示例

    7.2.2 更多示例 译者:Python 文档协作翻译小组,原文:More Examples. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作 ...

  8. Theano 中文文档 0.9 - 7.2.1 起手式 —— 代数

    7.2.1 起手式 -- 代数 译者:Python 文档协作翻译小组,原文:Baby Steps - Algebra. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. ...

  9. Theano 中文文档 0.9 - 7.1.1 Python教程

    7.1.1 Python教程 译者:Python 文档协作翻译小组,原文:Python tutorial. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Pytho ...

  10. Theano 中文文档 0.9 - 7. 教程

    7. 教程 译者:Python 文档协作翻译小组,原文:Tutorial. 本文以 CC BY-NC-SA 4.0 协议发布,转载请保留作者署名和文章出处. Python 文档协作翻译小组人手紧缺,有 ...

最新文章

  1. mxmkc编译器参数!
  2. iOS 开发中使用 NSURLProtocol 拦截 HTTP 请求
  3. Python jsonpath库的使用:解析json并将结果保存到文件
  4. 0与1世界的初级编程篇之C语言
  5. linux网络编程--服务器模型(epoll/select/poll)
  6. vs2019配置opencv_VS2019下Opencv配置
  7. Unity内嵌浏览器插件(Android、iOS、Windows)
  8. 遭遇希捷硬盘“固件门”,经销商仅赔了新硬盘,原来硬盘中数据全部丢失,郁闷。。。...
  9. 直线分割平面的公式_直线分割平面-jiangwen127-ChinaUnix博客
  10. Cause: java.sql.SQLException: Incorrect string value: ‘\xF4\x80\x80\x82\xF4\x80...‘ for column ‘xxx‘
  11. Lora、zigbee比较
  12. 等额本息还款法贷款利息计算方法及还款计划
  13. 低功耗蓝牙芯片基础知识
  14. 题解-表达式括号匹配
  15. Single TPR论文解读
  16. 低频功率放大器参考电路图解大全
  17. 称重软件地磅称重在实际应用中需要注意哪些?
  18. 判断浏览器系统是IOS还是PC还是android
  19. ftp上传工具中文版,6款最好用的ftp上传工具中文版,使用指南
  20. 概率论与数理统计期末复习题(3)

热门文章

  1. 【Visual C++】游戏开发笔记四十一 浅墨DirectX教程之九 为三维世界添彩 纹理映射技术 一
  2. 数学原理-高等数学复习笔记 ——1.2 泰勒公式 罗尔中值定理与拉格朗日中值定理(附加多个实战题目)
  3. Excel表Ctrl+v和Ctrl shift+v有什么区别_Excel表格操作技巧,超实用
  4. 《多收了三五斗》大学毕业版 (转)
  5. whisper客服源码_whisper客服系统兼容HTTPS方案
  6. 个人博客logo如何设计?案例合集参考
  7. ubuntu 14.04 更新 flash
  8. IMDB Top 250电影推荐
  9. java 定义16进制_java数据类型(大小等),变量定义,各进制书写方法
  10. windows家庭版关闭windows defender