Drupal 8 如何致力于面向未来

您需要了解的关于 Drupal 8 更新的信息。
121 位读者喜欢这篇文章。
Sustainable Drupal: Save energy by speeding up your CMS

Creative Commons CC0 1.0 通用公共领域贡献;Jen Wike Huger 修改。

托马斯·爱迪生有句名言:“要取得任何有价值的成就,三大要素是:第一,努力工作;第二,坚持不懈;第三,常识。” 这句话让我想知道“坚持不懈”是否与创新相矛盾;它是否会让你抵制变革?但是,我越是思考,就越意识到创新是由毅力驱动的。

在 Drupal 8 推出之前,核心委员会不仅承诺创新;他们决定坚持不懈。坚持持续的自我改造。坚持让 Drupal 更容易被采用——不仅被市场采用,也被各种专业水平的开发者采用。然而,为了使 Drupal 能够长期取得成功并保持相关性,需要进行彻底的变革——一场能够构建更美好未来的变革。为此,Drupal 8 必须拆除 Drupal 7 的架构,为充满希望的未来奠定全新的基础。现在,迁移到 Drupal 9(即将推出)及后续版本将变得轻松而直接。

通过开源进行创新的自由

创新带来自由,自由创造创新。开源赋予您访问、学习、贡献的自由,最重要的是创新的自由。在当今社会,学习、赶上并重塑自我的能力至关重要。Drupal 最初是一个小型内部新闻网站,后来发展成为一个开源内容管理系统 (CMS),因为通过吸引更多贡献者,它有可能变得更具吸引力。它让开发者可以自由地协作、重用组件并对其进行改进,从而创造出更现代、更强大且更相关的产品。

承诺兑现:Drupal 8 版本历史

网络始终在变化。为了保持相关性,Drupal 必须引入革命性的变革,但同时又不能让人难以接受。Drupal 7 作为一个内容管理系统,受到了广泛的欢迎。但它在某些方面存在不足,例如开发者易用性、简易的升级路径、更好的 API 支持等等。Drupal 8 改变了一切。他们没有选择在 Drupal 7 的基础上构建,这对于一个开源 CMS 来说本应是一个更容易的选择。为了构建一个更面向未来的 CMS,使其能够适应变化,Drupal 8 必须使用更现代的组件(如 Symfony、Twig、PHP 7)以及 API 优先计划、移动优先计划、配置管理计划等举措进行重建。

Drupal 8 的发布承诺提供更具雄心壮志的数字体验,同时改进用户体验和移动兼容性。目标是不断创新和自我改造。为了实现这一目标,需要落实以下实践:语义化版本控制(major.minor.patch)、计划发布(每年两次小版本发布)以及在核心中引入实验性模块。所有这一切都同时提供向后兼容性并删除已弃用的代码。

让我们来看看 Drupal 8 的每个小版本都兑现了哪些承诺。

  • Drupal 8.0
    • 现代且复杂的 PHP 实践、面向对象编程和库。
    • Drupal 7 中配置的存储和管理有点混乱。“配置管理计划”在 Drupal 8.0 中引入,它允许更简洁的安装和配置管理。配置现在存储在易于阅读的 YAML 格式文件中。这些配置文件也可以随时导入。这允许平稳且轻松地过渡到不同的部署环境。
    • 添加 Symfony 组件极大地提高了 Drupal 8 的灵活性、性能和稳健性。Symfony 是一个开源 PHP 框架,它遵循 MVC(模型-视图-控制器)架构。
    • Twig 是一个强大的 PHP 模板引擎,自 2005 年以来取代了 Drupal 的引擎 PHPTemplate。借助 Twig,代码现在更具可读性,主题系统也不那么复杂,使用继承来避免冗余代码,并通过清理变量和函数来提供更高的安全性。
    • Entity API 在 Drupal 7 中相当有限,并且是一个贡献模块,现在已完全成熟,并且位于 Drupal 8 核心中。由于 Drupal 8 将一切都视为“实体”,因此 Entity API 提供了一种处理它们的标准化方法。
    • 引入了 CKEditor,它是一个 WYSIWYG(所见即所得)编辑器。它允许随时随地编辑、上下文编辑以及在发布前预览您的更改。
  • Drupal 8.1
    • BigPipe 模块的 alpha 版本作为实验性模块引入到核心中。BigPipe 使用缓存和自动占位符等方法更快地渲染 Drupal 8 页面。
    • Migrate UI 模块套件作为实验性模块引入到核心中。它使从 Drupal 7 迁移到 Drupal 8 更容易。
    • CKEditor 现在包含拼写检查功能以及在文本中添加可选语言的功能。
    • 改进了测试基础设施和支持,尤其是对于 Javascript 交互。
    • Composer 是管理网站和模块的第三方依赖项的必备工具。借助 Drupal 8.1,Drupal 核心及其所有依赖项现在都由 Composer 管理和打包。
  • Drupal 8.2
    • Place Block 模块现在是核心中的一个实验性模块。借助此模块,您可以直接从 Web UI 轻松地操作区块。配置和编辑博客可以毫不费力地完成。
    • 一个新的内容审核模块(基于贡献模块 Workbench Moderation)已作为实验性模块引入到核心中。它允许细粒度的工作流权限和支持。
    • 内容创作体验通过更好的修订历史和恢复功能得到了增强。
    • 改进了 404 响应的页面缓存。
  • Drupal 8.3
    • BigPipe 模块现在已稳定!
    • CKEditor 的更多改进。从 Word 中流畅复制粘贴的体验、拖放图像以及允许您使用更大屏幕尺寸等的 Autogrow 插件。
    • 更好的管理状态报告,以改善管理员体验。
    • Field Layout 模块作为实验性模块添加到核心中。此模块取代了 Drupal 7 中的 Display Suite,并允许为不同的内容类型排列和分配布局。
  • Drupal 8.4
    • 8.4 版本呼吁发布许多先前实验性模块的稳定版本。
    • Inline Form Errors 模块(在 Drupal 8.0 中引入)现在已稳定。借助此模块,表单错误放置在相关表单元素的旁边,并且在表单顶部提供错误摘要。
    • 另一个稳定版本——DateTime Range 模块,它允许日期格式与 Calendar 模块的格式匹配。
    • Layout Discovery API(作为实验性模块添加到 Drupal 8.3 中)现在已稳定并准备就绪。借助此模块,Layout API 被添加到 Drupal 8 核心中。它采用了以前流行的贡献模块——Panels 和 Panelizer——它们被广泛用于创建惊人的布局。Drupal 8 的布局计划确保您拥有一个强大的布局构建工具,开箱即可用。
    • 非常流行的 Media 模块作为 API 添加,供开发者能够从 Drupal 7 移植各种 Media 贡献模块。例如,媒体模块,如 Media entity、media entity document、media entity browser、media entity image 等。但是,在移植和修复问题完成之前,此模块仍对站点构建者隐藏。
  • Drupal 8.5
    • Drupal 8 设定的首要目标之一是使内容作者更容易、更好地处理丰富的图像、媒体集成和资产管理。它通过现在在核心中添加 Media 模块(并且不再隐藏)成功实现了这一目标。
    • Content Moderation 模块现在已稳定。定义工作流的各种级别和状态并在它们之间移动毫不费力。
    • Layout builder 模块作为实验性模块引入。它使站点构建者可以完全控制和灵活地自定义和构建来自其他布局组件、区块和区域的布局。这是 Drupal 8 站点构建者的首要目标之一。
    • 在 Drupal 8.1 中作为实验性的 Migrate UI 模块套件现在被认为是稳定的。
    • 先前在 8.5 版本中变得稳定的 Big pipe 模块现在默认包含在标准安装配置文件中。所有 Drupal 8 站点现在默认都更快。
    • PHP 7.2 已经到来,Drupal 8.5 现在可以在其上运行,并完全支持它提供的新功能和性能改进。
  • Drupal 8.6
    • 非常有用的 oEmbed 格式现在在 Drupal 8.6 Media 模块中得到支持。当发布该资源的 URL 时,oEmbed API 有助于显示嵌入内容。Media 模块中还包括对嵌入 YouTube 和 Vimeo 视频的支持。
    • 一个实验性的 Media Library 模块现在位于核心中。现在支持添加和浏览多个媒体,并且还可以自定义。
    • 引入了一个名为 Umami 的新演示站点,它演示了 Drupal 8 的核心功能。此安装配置文件可以让新的站点构建者了解 Drupal 的功能,并允许他们出于学习目的而操作视图、字段和页面。它还可以作为 Drupal 机构向其客户展示 Drupal 8 的绝佳工具。
    • Workspaces 模块作为实验性模块引入。当您有多个需要审核(状态更改)和部署的内容包时,此模块可让您一起完成所有操作,并为您节省大量时间。
    • 使用此版本安装 Drupal 现在变得更加容易。它提供了两种新的简单方法来安装 Drupal。一种是“快速启动”命令,仅要求您安装了 PHP。在另一种选项中,安装程序会自动识别是否已进行过先前的安装,并允许您从那里安装。
  • Drupal 8.7
    • JSON:API 模块是直接进入 Drupal 核心的最重要的补充之一,它作为一个稳定模块进入。它推进了 Drupal 的 API 优先计划,并为构建解耦应用程序提供了一种简单的方法。
    • Layout Builder 模块现在稳定且比以往任何时候都更好。它现在甚至允许您处理非结构化数据以及可字段化的实体。
    • Media Library 模块在此版本发布中焕然一新。营销人员和内容编辑现在可以更轻松地搜索、附加、拖放媒体文件,无论何时何地需要。
    • 完全支持 PHP 7.3。
    • 分类法和菜单项是可修订的,这意味着它们可以在编辑工作流中使用,并且可以分配状态。
  • Drupal 8.8
    • 此版本将是 Drupal 8 的最后一个小版本,您将在其中找到新功能或弃用。下一个版本 Drupal 8.9 将不包含任何新添加内容,但将与 Drupal 9.0 非常相似。
    • Media Library 模块现在稳定且可以使用。
    • Workspaces 模块现在得到增强,可以包括添加分层工作区。这为内容编辑者提供了更大的灵活性。它现在也与 Content Moderation 模块一起工作。
    • Composer 现在接收原生支持,并且不需要外部项目来打包 Drupal 及其依赖项。您可以使用 Composer 通过一行命令创建新项目。
    • 为了履行其让新手更容易学习 Drupal 的承诺,引入了一个新的 Help Topics 实验性模块。每个模块、主题和安装配置文件都可以有基于任务的帮助主题。

为更广泛的开发者群体敞开大门

尽管 Drupal 因其灵活性、弹性以及最重要的内容管理能力而受到广泛接受和喜爱,但仍然存在一个棘手的问题——“深度学习曲线”问题。虽然许多 Drupal 用户认为深度学习曲线是构建高度复杂和强大的应用程序的 CMS 的一部分,但寻找 Drupal 人才是一个挑战。Drupal 的创始人 Dries 说:“对于大多数 Drupal 新手来说,Drupal 7 真的非常复杂。” 他还补充说,这可能是因为坚持过程式编程、大量使用结构化数组以及更多此类“Drupal 主义”(正如他所称)。

这个问题需要解决。随着 Drupal 8 采用现代平台和标准,如面向对象编程概念、最新的 PHP 标准、Symfony 框架和设计模式,现在大门已向广泛的人才(站点构建者、主题、开发者)敞开。

最终想法

“整个科学不过是日常思维的提炼。”——阿尔伯特·爱因斯坦。

今天的开源不仅仅是免费软件。它是由协作知识和努力组成的集合,正在彻底改变数字生态系统。数字世界正以惊人的速度发展,我认为只有开源社区的创新和毅力才能使其加速发展。Drupal 社区每天都在坚定不移地自我改造和完善,这在 Drupal 8 的最新版本中尤其可见。

接下来阅读什么
标签
User profile image.
Shefali Shetty 是领先的 Drupal 开发公司 Specbee 的营销总监。作为 Drupal 的爱好者,她喜欢探索和撰写有关这个强大平台的文章。

1 条评论

4 年后,Drupal 8 是该平台的 Beta 版。就我而言,8.9 将是 beta9。我期望 Drupal 9 迎来 RC1。

我仍然无法在不炸毁 Drupal 8 并在“每天”的基础上获得 WSOD 的情况下使用它。

Drupal 8 虽然对于后端开发人员来说是一个很大的改进,但对前端构建人员并不友好。有太多的层来“仅仅构建一个站点”,Composer 只是其中之一。

我长期而努力地研究了迁移 D7 站点,但负担太重了。Drupal 8/9 不够稳定。我需要它工作,而不是花时间试图弄清楚它为什么不工作。也许再过 4 年,我可以再次考虑它。在那之前,我仍然停留在 D7。

Creative Commons 许可本作品根据 Creative Commons 署名-相同方式共享 4.0 国际许可协议获得许可。
© . All rights reserved.