经过一段时间的沉默,产品领导团队很高兴地宣布,我们将继续推进 Joomla! 框架 v2 的规划、准备和最终发布工作。在过去几周中,我们开始构建下一版框架的主要版本路线图和愿景,现在我们已准备好与社区分享以供审查和反馈。
总体目标
重新授权为 LGPL
正如投票通过并宣布的那样,Joomla! 框架 v2 将在 LGPL 许可下分发。目前,DateTime 包(2014 年 GSoC 的贡献)已在 LGPL 许可下发布,而 Keychain 包已在 2.0-dev 分支中重新授权(但尚未发布)。
整合代码库
目前,构成框架的 30 多个包在单个 GitHub 组织中作为单独的存储库进行单独管理。我们将研究将完整的框架堆栈重新集成到单个存储库中的可能性,同时继续利用各个存储库单独发布每个包。
文档
框架的文档通常由放在每个包的 README 文件中的注释组成,一些包根本没有文档。我们的目标是完成框架中每个包的文档并将其整合到一个位置。
最低支持 PHP 版本
框架 v1 发布时,最低要求为 PHP 5.3.10。我们将分析我们自己的需求以及市场趋势,以确定 v2 的最低支持 PHP 版本。
路径常量
框架 v1 中的许多包都需要一个 JPATH_ROOT 路径常量。这些路径常量将在 v2 中删除。
特定包目标
缓存
缓存包基于 PHP-FIG 提议的缓存 PSR 的一个非常旧的版本。对于 v2,该包应重构以实现提议的缓存 PSR 的当前版本,或删除对 PSR 的引用。
数据库
现有的数据库包为多个数据库平台创建了一个抽象层,用于构建和执行查询,但缺少一些工具,例如管理数据库模式的能力。对于 v2,我们正在研究创建更多工具来涵盖缺失功能或可能使用第三方数据库系统的可能性。
文件系统
文件系统包中的很大一部分仍然遵循基于过程的 API。在 v2 中,这些类将重构为使用面向对象的 API。此外,我们将研究扩展该包的使用以可能支持云存储操作。
表单
框架团队和 PLT 达成共识,认为目前状态下的表单包在功能和可扩展性方面有一些局限性。我们将研究如何改进表单包以解决这些主要缺陷。
HTTP
在 v2 中,我们的目标是通过改进内部 API 来提高包类别的可扩展性,主要是在 HttpFactory 类本身中。响应类也将扩展,以提供更多功能和与第三方系统的潜在兼容性。
语言
语言包的 v2 将重构为在 v1 中未使用面向对象 API 的地方使用面向对象 API。用于引用字符串的 _QQ_ 常量也将删除。此外,我们将研究扩展语言包以支持语言文件的更多文件格式。
日志
日志包将不会被带到 v2,部分原因是它与 PSR 日志接口不兼容。我们建议使用其他专用的日志工具,例如 Monolog 来代替。
注册表
注册表包包含几个类,它们帮助从不同的文件类型读取数据并将其转换为注册表对象,或者将数据导出到文件系统。我们认为这些类在注册表包之外具有潜在的用例,并且可以将它们提取到一个单独的包中以扩展其使用范围。
路由器
为 v2 写了一个重构的路由器。
会话
会话包以前已弃用,计划在 v2 中停止使用。但是,框架团队和 PLT 正在重新考虑这一决定,并可能更新该包。
视图
视图包将为 v2 重构,并扩展 API。此外,通过一个单独的渲染器包计划扩展 HTML 渲染支持,该包为各种 PHP 模板引擎创建了一个通用接口。
第三方 API 包
框架包含几个与第三方 API 集成的包,包括 Facebook、GitHub 和 Mediawiki。这些包将针对其上游平台的最新更改进行更新,并根据需要添加更多 API 覆盖范围。此外,我们可能会重构这些包以创建连接器包的通用 API,每个包实现平台特定功能。
讨论
虽然已经有一些想法和目标,但这些只代表了少数人的想法。我们欢迎对这个初始列表进行反馈和讨论,以及其他关于如何在下一个主要版本中改进框架的想法。如果您想评论这个提案,我们邀请您参与 框架的 Google 群组中的此主题。