Aura项目围绕着一系列高质量、经过良好测试、语义版本、符合标准的独立库包,可以在任何代码库中使用。
每个库都是独立的,只有其核心目的所需的东西。 没有任何库包依赖于任何其他包。 它们不仅与任何特定框架分离,而且彼此分离。 这意味着开发人员可以根据需要使用尽可能多的项目。
虽然Aura库包没有依赖关系,但是带下划线的包(例如* _Bundle)将其他库组合在一起,因此依赖于这些库。
Package | Description |
---|---|
Di 3.4.0 | A serializable dependency injection container with constructor and setter injection, interface and trait awareness, configuration inheritance, and much more. |
Filter_Interface 3.0.0‑alpha1 | An interface package for validation and sanitizing library |
Intl 3.0.0 | The Aura Intl package provides internationalization tools, specifically message translation. |
Payload 3.0.1 | A Domain Payload implementation. |
Payload_Interface 3.1.0 | An interface package for Domain Payload implementations. |
Router 3.1.0 | Powerful, flexible web routing for PSR-7 requests. |
Sql 3.0.0 | A PDO extension that provides lazy connections, array quoting, query profiling, value binding, and convenience methods for common fetch styles. Because it extends PDO, existing code that uses PDO can use this without any changes to the existing code. |
由于Aura的库较多,本项目选择链接了其在github上星标最多的一个仓库。根据上表中的链接可以直接访问 Aura 的各个库包的仓库,开发者可以根据自身需要选用。
如想使用 Aura框架,官方建议使用 2. x 框架:https://github.com/auraphp/Aura.Framework_Project。
Aura system(https://github.com/auraphp/system)提供了围绕Aura库包构建的全栈Aura框架,是基于1.x的框架,不建议使用。
历史
Aura 1.x开始重写Solar,重新构想为具有依赖注入的库集合,而不是具有服务位置的整体框架。 (从Solar到Aura的名称更改是为了减少与Apache Solr项目的混淆。)这些库一旦完成,就会合并到1.x框架中。
Aura 2.x继续将1.x组件分离为更独立的包。它还将框架拆分为内核和项目包,为2.x框架提供了基础。各种* _Kernel和* _Project包构成2.x框架;它们依赖于基础Aura库以及外部包。
Aura 3.x非常轻松地放宽了no-dependencies规则以允许“接口包”依赖。在宽松的规则下,Aura库可能依赖于接口包,但不依赖于实现。这允许Aura库符合常用的日志记录,HTTP消息等接口。此外,3.x系列避免提供框架,更愿意让最终用户根据自己的特定需求构建自己的框架。