Joomla 4 是我们下一个主要版本,它得益于我们优秀的志愿者社区而积极开发。在过去的几个月里发生了很多事情!
在进入 Beta 周期(这主要意味着功能冻结)之前,我们想与大家分享一些与以下内容相关的重要信息:
- 技术要求
- 改进的搜索系统
- 新的代码风格检查器。
技术要求的提高
网络行业发展迅速,Joomla 需要采取相应措施才能保持领先地位并满足用户需求。因此,我们决定提高 Joomla 4 的技术要求。
由于 Joomla 4.0 和 Joomla Framework 2.0 已经开发了几年,我们决定重新评估我们支持的软件版本,以便优化 CMS 以应对未来几年,并遵循用户已经使用的软件版本(我们能够使用这些信息,这得益于那些启用我们的统计插件的用户)。
PHP 最低版本为 PHP 7.2
目前,7.2 和 7.3 是 PHP 唯一的积极支持的发布分支,PHP 5 自 2018 年 12 月起不再支持,PHP 7.1 仅在 2019 年 12 月之前提供安全修复程序。在 Joomla 4 发布时,支持的 PHP 版本中最旧的版本 7.2 将只剩下不到一年的安全支持。这使我们能够利用原生 PHP sodium 加密而无需 polyfill,以及 void 类型声明,这些声明对于 Joomla 4 中的新接口将非常有用。在选择此版本时,我们注意到从统计插件获得的信息显示,PHP 7.2 的用户是 7.1 的两倍。
MySQL 最低版本为 5.6
5.6、5.7 和 8.0 是目前支持的版本的 MySQL 数据库。版本 5.5 于 2018 年 12 月达到生命周期结束,而 MySQL 5.6 将支持到 2021 年 2 月。
请注意,如果需要,在 Joomla 4 的生命周期中,最低 MySQL 版本可能会发生变化,因为我们将来可能会使用 MySQL 5.7,这将允许在 MySQL 列中使用 JSON 数据库类型。
PostgreSQL 最低版本为 11
每年都会发布一个新的主要版本的 PostgreSQL,其中包含新功能。至少每三个月,主要版本就会收到 bug 修复程序,并在需要时提供安全修复程序。
有时我们发现很难支持所有不同的可用版本的 PostgreSQL。因此,为了使 Joomla 4 更加稳定,并且因为我们目前几乎一半的 PostgreSQL 用户已经使用版本 11,所以我们决定只支持最新版本 11 及更高版本(版本 11 将于 2023 年 11 月达到 EOL)。
放弃对 Internet Explorer 的支持
放弃对 IE 的支持是基于以下几个因素。使用 Internet Explorer 浏览网页的互联网用户不到 5%。新的 Edge 浏览器(基于 Chromium)将具有一个 IE 兼容性层,这将进一步降低 IE 的使用率。
这是否意味着 Joomla 4 在 IE 中无法使用?是也不是!
Joomla 4 后端模板不支持 IE,因此您需要使用其他浏览器来安装/维护网站。Cassiopeia 核心前端模板也是如此,因为它不支持 IE 要求,因此您可能会遇到一些显示问题。但是,可以通过创建或安装支持 IE 的模板来解决此问题。
这将如何影响核心代码?
随着我们逐步淘汰 PHP 5 支持,我们可以在代码中进行许多功能和优化。这些更改中的许多可以在不影响现有公共 API 的情况下进行。但是,某些功能(例如,标量类型提示)如果被接受,将导致向后兼容性中断。
因此,我们将针对 Joomla 4.0 和 Joomla Framework 2.0,对新旧代码采用以下策略:
- 新主要版本中的所有新类和方法都可能使用 PHP 7.2 中提供的全部功能,包括标量类型提示和返回类型声明。
- 私有方法和最终类中的方法(根据定义无法扩展)可以更新以使用 PHP 7.2 类型。
- 现有类中的公共和受保护的方法通常不会更改其方法签名,除非更改可以提高代码的理解和使用(例如,可以使用可变参数签名的方法)。
- 核心基础放弃了使用复杂的 polyfill,只是为了支持 IE,用于 CSS 变量和 flexbox。
一个统一且改进的搜索系统
作为主要版本,我们正在评估所有扩展和概念,以尝试简化所有 Joomla 用户的生活。自从 2.5 版本发布以来,Joomla 中的一个问题就是搜索。Joomla 4.0 将迈出重要一步,我们想告诉大家所有关于它的事情。
问题是什么?
多年来,Joomla 提供了两个搜索系统。第一个是 Search(或 com_search),它源于 Mambo 时代,从那时起就没有真正发展。另一个是 Smart Search(或 com_finder),它是为 Joomla 2.5 慷慨捐赠的,但并不完全完善。
两个完全独立的系统用于同一任务,这不会让用户感到轻松,而且常常会导致混淆。更不用说核心开发人员必须同时支持这两个系统。
Search 和 Smart Search 之间有什么区别?
Search 是一个非常简单的系统,它调用一组插件在数据库中对搜索词进行朴素搜索,并返回一系列结果。它们对该词的每次提及都会做出反应,但也只对该确切的词做出反应。如果您有大量数据和搜索插件,这可能会影响您网站的性能。结果没有排序,但是创建此类插件所需的代码很简单。
另一方面,Smart Search 是一个基于索引的搜索。搜索索引有很多好处,可以按相关性对结果进行排序,进行模糊搜索,其中搜索词的变体也会被搜索,并且对性能的影响较小。Smart Search 系统功能更强大,但需要一些工作,因为您需要构建索引。
我们做了什么?
在过去的一年里,Smart Search 进行了彻底的改革。我们改进了数据结构和 Smart Search 进行实际搜索的方式,从而大大提高了性能。我们修复了几个长期存在的错误并完善了分类系统。最重要的是,我们修复了与多语言支持相关的许多错误。
通过所有这些更改,Smart Search 将为您提供最佳的搜索结果。因此,我们决定从 Joomla 4.0 核心代码中移除简单的 Search 系统。
我们借此机会感谢cloudaccess.net,他们部分资助了 Smart Search 系统的改进。
如何从 Search 升级到 Smart Search?
这两个系统非常不同,没有真正的方法可以通过单击按钮将一个升级到另一个。如果您目前在您的网站上使用 Search,并且想要切换到 Smart Search,则必须设置该系统。不用担心,这比听起来容易:启用插件,创建您的内容的索引(只需单击一下即可!),并通过创建菜单项或模块(或两者)来使您的搜索对您的访客可用。
有关 Smart Search 以及如何设置它的更多信息,请单击您后端中的“帮助”按钮。
我们鼓励我们的扩展开发者尽快开始为他们的扩展创建 Smart Search 插件,以满足他们的用户需求。
但我需要旧的 Search!
如果您真的不想切换到 Smart Search,您仍然可以将旧的 Search 系统作为单独的扩展安装在新的 Joomla 4 网站上。此软件包将在下载网站 (https://downloads.joomla.net.cn) 上提供,并将维护 Joomla 4 的整个生命周期。如果您从 Joomla 3 网站升级,那么我们将不会删除旧的搜索 - 就像我们在 Joomla 3.3 中删除 Weblinks 一样。
自动修复代码风格错误
随着 PHP CodeSniffer 2.x 的实施,现在可以自动修复许多代码风格错误。我们在编码标准中的自定义嗅探器也添加了此自动修复功能。这将为开发人员和 Joomla 项目节省大量时间,确保代码标准符合性,无需人工干预。我们已经在努力迁移到 PHP Codesniffer 3.x,以确保我们在 Joomla 4 中使用最新版本。
我们要特别感谢 Walt Sorenson,他为 Joomla 的代码嗅探器规则集投入了大量时间。秉承开源精神,我们对 Joomla 的许多改进都提交回代码嗅探器项目。
我们坚定地致力于使 Joomla 4 成为最好的版本。拥抱以上内容将有助于为我们的用户提供最高质量的产品。
翻译
- 荷兰语: Joomla 4 is onderweg
- 德语: Neuigkeiten zu Joomla 4.0 …
- 意大利语: Joomla 4 in movimento...
- 西班牙语: Joomla 4 en movimiento...