Joomla Compatibility Layer

随着 Joomla 3.8 的发布,第一个 Joomla 4 兼容层也发布了。这个层包含什么内容?为什么需要这样的层?本文将回答这些问题。

命名空间

Joomla 4 中的一个重大变化是命名空间,这是一个自 2009 年发布的 PHP 5.3.0 就已存在的特性。整个 PHP 社区已经完全适应了它,Joomla 不想落后。

在 Joomla 4.0 中,核心架构将支持并大量使用命名空间 PHP 代码。这适用于核心库和扩展。

为什么需要迁移层

我们承诺 Joomla 3 扩展可以在 Joomla 4 上运行,而命名空间 Joomla 4 扩展可以在 Joomla 3.9 上运行。为了实现这一点,我们决定逐步进行,以降低错误风险,并为扩展开发者提供足够的时间进行适应。第一步是在 Joomla 3.8 中为库文件夹添加命名空间。这意味着像 JForm 这样的类现在具有类名 \Joomla\CMS\Form\Form。为了保持向后兼容性,旧的类名仍然有效。这就是我们所说的迁移层。

仍然存在于文件夹 /libraries/cms /libraries/joomla/libraries/legacy 中的类大多已在 Joomla 4 中弃用或删除。有一个例外,即文件系统包。我们没有足够的时间在 3.8.0 版本中转换它。这将在 3.9 中完成。

我应该如何处理我的新扩展?

如果您计划为 Joomla 3 创建一个新的扩展,那么您仍然需要按照旧的方式进行。您可以使用命名空间库类,但扩展,主要是组件,仍然需要不使用命名空间。我们将把 Joomla 4 的大多数特性移植到 3.9.0 中,因为 3.8 现在处于错误修复模式。

Joomla 3.9 的当前状态

我们还没有开始将 Joomla 4 的特性移植到 3.9,因为在开始针对 3.9 进行开发之前,我们需要修复 4 中的一些问题。这意味着现在不建议针对 Joomla 3.9 进行工作。

资源

完整的 Joomla 4 路线图 已发布在开发者网站上。如果您想查看最新的代码,您可以测试 每日构建

问题应该在 开发者邮件列表 中提出,但大多数向后兼容性问题已在 此处 解释。