Drupal 7 Features 模块与 Drupal 8 Configuration Management 模块的对比

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 加载完成。

    9ee4540e-f9c4-11e6-9003-80bf837d5045.png

  3. 我们展开所有的组件,并确保我们已经找到了 feature 中所有对应的加载项。

    a7158d50-f9c4-11e6-9624-2311f48af1a2.png

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

    b0734388-f9c4-11e6-845b-f0fb11dd60d6.png

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

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

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

使用 Drush

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

b7da24d4-f9c4-11e6-9f6e-2aebf9aa78a2.png

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

bd9bd408-f9c4-11e6-9721-bc08a5a76286.png

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

2eddf9c0-f9c5-11e6-9073-567a1cbb3ebb.png

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

Drupal 8

使用 UI

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

34b2d046-f9c5-11e6-80e9-1ad3ec22cf93.png

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

38fc5d20-f9c5-11e6-9369-efb72a2d7e5c.png

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

3cbba9b6-f9c5-11e6-8c26-8b19446008df.png

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

41f39902-f9c5-11e6-87a4-31c281479728.png

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

454b9bea-f9c5-11e6-97be-c6a3f1d1b6d3.png

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

使用 Drush

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

导出配置:

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

49fb47f8-f9c5-11e6-8020-b15ca7e34e77.png

导入配置:

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

4dca12e2-f9c5-11e6-87cd-94cc64b8506c.png

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

总结

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