随着 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 路线图 已发布在开发者网站上。如果您想查看最新的代码,您可以测试 每日构建。