【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

时间:2021-10-18 16:55:17

Drupal 8 最好和最受欢迎的部分之一是新的配置管理系统。 该系统使开发人员很容易将配置导出到代码中。在此之前,开发人员不得不依赖于由Features、Strongarm、UUID、Features & UUID plugin等模块组成的复杂系统。即使是经验丰富的开发者,这往往也是一场噩梦。充斥着重写、锁定,祈求本可还原的功能却没有理由的无法还原,这简直是一团糟。更不用说随着网站体量的扩大和增加更多的功能,甚至不允许依赖关系的情况下,尝试将所有功能放在规律命名和组织的模块中。而Drupal 8 中的 Configuration Management 旨在解决所有的问题。

作为一个开发者,如果你还在考虑是否要从 Drupal 7 转到 Drupal 8,这应该是一个升级的原因。以下是主要的差异和注意事项:

UI 或者 Drush?

Drush可以使您的功能工作流程更容易,但这也取决于您的网站。 如果您在 feature 中添加了很多东西,则UI更容易完成列出、展示或其他常规的命令操作。就个人而言,我已经陷入了使用 Feature UI 的一种模式中,因为我工作的许多网站的功能非常复杂。Drupal 8中也有一个类似的UI,但是drush的导入和导出已经非常接近完美。我还没有找到想要使用UI的理由,尽管我欣赏它作为备份的存在。不过,我们将同时比对Drupal 7和Drupal 8的 UI 和 Drush。

Drupal 7 的导出配置

好的,所以假设您已经对现有 Feature 进行了导出所需的更改。

使用 UI

  1. 所以现在我们需要导航到Structure > Features 并找到相应的 feature。

  2. 我们点击 Recreate 并等待 feature 加载完成。

    1. 【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比
  3. 我们展开所有的组件,并确保我们已经找到了 feature 中所有对应的加载项。

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

4.如果这是一个重大变化,我们需要更新版本号。

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

  1. 我们设置文件路径并单击生成或下载。

  2. 我们找到下载的压缩文件并将其解压缩到适当的位置。

  3. 我们回到 features 界面,并检查 feature 是否处于正确的状态。

使用 Drush

现在,如果您只是更新现有组件,而不是添加或删除任何组件,drush features-update myfeature 将会做到这一点。 然后,您可以使用drush fl检查 feature 的状态。

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

添加组件时,使用drush features-components列出组件。

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

在命令drush features-export添加组件作为参数,如drush features-export myfeature mycomponent1 mycomponent2。

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

上述示例将图像组件导出到名为chq_images_test_feature的新 feature。

Drupal 8

使用 UI

进入 admin/config/development/configuration 来访问UI。 在Drupal 8的配置界面中,您有好几个选项,可以导入,导出或同步。您还可以查看所有更改的差异。加上底部有一个“全部导入”按钮,整个界面看起来像这样:

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

导入选项卡允许您从外部文件导入完整的配置存档:

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

或通过黏贴一段代码导入单独的配置:

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

导出选项卡允许您将整个配置导出到一个文件中:

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

或将单个项目导出到可以复制的代码中:

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

首先,这里没有在 Feature 中归类配置的功能,但是界面要简单得多,而且下拉菜单更容易使用,更不用说它们比 Feature 中依赖Ajax的复选框更可靠。

使用 Drush

虽然Drupal 8的配置UI很简单,但drush更简单。

导出配置:

运行drush config-export -y。 您将看到一个导出的配置更改的列表,如下所示:

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

导入配置:

运行drush config-import -y。 您将看到一个导入的配置列表:

【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比

综上,这是我在Drupal 8开发中最喜欢的事情之一。它快速简洁,只需要几秒钟。您不需要其他模块来帮助导出所有内容。不管是增删改任何操作均是如此。一年以来在我一直在使用Drupal 8开发的站点上,我只有几个小型实例的配置不正确同步 - 比 Features 少得多,而且更容易进行故障排除。

总结

现在,Drupal 8发行已经一周年了,越来越多的人和公司正在考虑迁移到Drupal 8。这中间有很多东西需要评估,当然本文中所描述的只是很细小的东西,但是对于开发者来说是一个很大的改进。