今天,我们很高兴与大家分享 Joomla! 3.8 版本的发布计划,并且希望您能帮助我们为发布做好准备。
主要特性
Joomla! 3.8 将包含两个主要特性:新的路由系统以及与 Joomla! 4.0 的前向兼容性层。
路由器
经过多年的开发,新的路由系统终于将在 Joomla! 3.8 中提供给用户。路由器为开发者定义了一个新的、更灵活的接口来处理 URL 的创建和处理,并为最终用户提供了更多关于 URL 显示方式的选择(包括经常被请求的从 URL 中移除内容项 ID 的功能)。在此版本中,对于支持新路由器的组件(内容、联系、用户和新闻源),可以将路由器设置为三种不同的配置之一:当前路由系统(对于新安装将保持为默认行为,并且对于升级时的现有网站通常建议使用此选项)、新的路由系统以及移除内容项 ID 的新路由系统。
对于渴望升级到新路由系统的用户,需要注意一些事项。新系统与现有路由器不完全向后兼容,在 URL 生成和处理方式上存在一些已知的特性,这些特性在新系统中将不存在。为了演示这些变化,以下是测试样本数据集中使用每种路由配置的两个页面。
动物照片图库类别页面
- 现有路由器:
/article-categories/72-park-site/photo-gallery/animals
- 带有 ID 的新路由器:
/article-categories/26-park-site/28-photo-gallery/72-animals
- 不带 ID 的新路由器:
/article-categories/park-site/photo-gallery/animals
考拉文章页面
- 现有路由器:
/article-categories/72-park-site/photo-gallery/animals/25-koala
- 带有 ID 的新路由器:
/article-categories/26-park-site/28-photo-gallery/72-animals/25-koala
- 不带 ID 的新路由器:
/article-categories/park-site/photo-gallery/animals/koala
如所示,在某些情况下,更改路由系统可能会更改页面的 URL 并导致现有页面返回 404 响应。在 GitHub 上,问题 #14848 正在讨论迁移计划的想法,以在某种程度上保持旧 URL 的有效性。欢迎并鼓励就此进行进一步的讨论。
Joomla! 4.0 兼容性层
在 Joomla! 4.0 中,核心架构将支持并主要使用命名空间 PHP 代码。为了与我们库目录中的新命名空间类兼容,从 3.8 开始,大多数库类现在使用命名空间类名,并且通过使用类别名仍然支持现有的类名(这是我们从 3.3 开始就一直在做的事情)。对旧类名的支持将持续到 5.0,但回传此工作使开发者能够开始在他们的 Joomla! 3 扩展中使用一些 Joomla! 4 的概念。
作为此更改的一部分,3.8 的更新将比平时更占用资源。在核心更新期间,当我们在包中移动或删除文件时,会进行一个更新步骤,将旧版本的文件从您的站点中移除。libraries/cms 和 libraries/legacy 目录中的大部分文件已移至新的 libraries/src 目录,因此 3.8 的更新意味着这两个目录中的大多数文件也必须作为更新过程的一部分被删除。
其他特性
虽然我们 3.8 的主要重点是这两个主要特性,但我们也将评估其他特性建议并考虑将其纳入此版本。我们已经在 GitHub 上的 3.8 通用项目看板 上重点介绍了一些开放性项目,如果工作在特性冻结之前完成,我们认为这些项目在此版本中是“锦上添花”的。还有许多其他特性建议,可以在 GitHub 上使用 新特性 标签找到,这些特性要么需要我们的社区进行测试和审查,要么是社区成员的特性请求,需要开发者编写代码来实现。
时间线
目前,我们的计划是在 7 月 24 日当周发布第一个 3.8 测试版,并在 9 月上半月发布稳定版。我们将在 7 月 14 日进行特性冻结,这意味着所有新的特性建议都必须经过测试,并且处于“准备提交”状态或已合并才能包含在发布版本中。与往常一样,这些时间线可能会根据各种问题和关注点而发生变化。有关此时间线的最新信息,请参阅我们的 项目路线图。
我如何提供帮助?
为了确保 3.8 版本和我们的主要特性“生产就绪”,我们需要您帮助我们对这些特性进行额外测试,以确保它们满足用户的期望并且没有出现意外问题。以下是一些关于测试 3.8 版本的一般指南。
升级网站
要将现有网站升级到 3.8,应备份您的网站并将其移动到测试/开发区域。将备份还原到测试区域后,您可以通过以下两种方式之一升级到 3.8:从我们的 每日构建 页面下载升级包,并使用 Joomla! 更新组件中的“上传和更新”区域上传包,或者将更新通道设置为 3.8 发布区域中提到的自定义 URL。
测试命名空间类
此升级的一个潜在问题是在更新过程中需要删除大量文件。我们的 Bug 小组和发布团队将继续使用他们自己的系统测试 3.8 升级的这一方面,但是获得更多用户的反馈将对我们非常有益。
测试新路由器
升级到 3.8 后,有兴趣在现有站点上使用新路由器的用户可以启用每个组件配置中的路由器。在启用路由器之前,我们建议您抓取您的站点并生成当前站点上处于活动状态且有效的 URL 列表,并在启用路由器后重复此步骤。在大多数情况下,当 ID 未从 URL 中移除时,不应有任何更改。在我们的内部测试和审查中,我们发现更改的 URL 是针对嵌套在菜单项下的类别和项目路径(类似于前面显示的示例),但设置为菜单项或菜单项的直接子项(即类别菜单项下的文章)的项目不应更改。当使用启用新路由器的站点进行审查时,如果您发现某些 URL 和配置已损坏,我们请您 在 GitHub 上提交问题,以便可以对其进行审查,以确定这是否是预期的行为变化或新代码中的潜在问题;在提交问题时,请尽可能提供具体细节(例如旧 URL 和新 URL、站点是否为多语言以及该页面所属菜单项的菜单项配置)。