【第196期】Drupal7 Features模块与 Drupal8 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
所以现在我们需要导航到Structure > Features 并找到相应的 feature。
我们点击 Recreate 并等待 feature 加载完成。
- 我们展开所有的组件,并确保我们已经找到了 feature 中所有对应的加载项。

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

我们设置文件路径并单击生成或下载。
我们找到下载的压缩文件并将其解压缩到适当的位置。
我们回到 features 界面,并检查 feature 是否处于正确的状态。
使用 Drush
现在,如果您只是更新现有组件,而不是添加或删除任何组件,drush features-update myfeature 将会做到这一点。 然后,您可以使用drush fl检查 feature 的状态。

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

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

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

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

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

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

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

首先,这里没有在 Feature 中归类配置的功能,但是界面要简单得多,而且下拉菜单更容易使用,更不用说它们比 Feature 中依赖Ajax的复选框更可靠。
使用 Drush
虽然Drupal 8的配置UI很简单,但drush更简单。
导出配置:
运行drush config-export -y。 您将看到一个导出的配置更改的列表,如下所示:

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

综上,这是我在Drupal 8开发中最喜欢的事情之一。它快速简洁,只需要几秒钟。您不需要其他模块来帮助导出所有内容。不管是增删改任何操作均是如此。一年以来在我一直在使用Drupal 8开发的站点上,我只有几个小型实例的配置不正确同步 - 比 Features 少得多,而且更容易进行故障排除。
总结
现在,Drupal 8发行已经一周年了,越来越多的人和公司正在考虑迁移到Drupal 8。这中间有很多东西需要评估,当然本文中所描述的只是很细小的东西,但是对于开发者来说是一个很大的改进。
【第196期】Drupal7 Features模块与 Drupal8 Configuration Management 模块对比的更多相关文章
- (转) 转换Drupal7模块到Drupal8
转载地址:http://verynull.com/2015/11/02/Converting-7-x-modules-to-8-x/ 本节主要介绍如何把drupal7的模块转化为drupal8.参考资 ...
- Python的程序结构[5] -> 模块/Module[0] -> 内建模块 builtins
builtins 内建模块 / builtins Module 在Python的模块中,有一种特殊模块,无需导入便可以使用,其中包含了许多内建函数与类. builtins 模块内容 / builtin ...
- 处理程序“ExtensionlessUrlHandler-Integrated-4.0”在其模块列表中有一个错误模块“ManagedPipelineHandler”
新服务器安装完开发环境后,还需要注册framework4.0到IIS.不然会报错: HTTP 错误 500.21 - Internal Server Error 处理程序“Extensionles ...
- HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
HTTP 错误 500.21 - Internal Server Error 处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipe ...
- MVC4做网站后台:模块管理1、修改模块信息
网站可能会包含一些模块:像文章.产品.图片.留言等. 栏目模块主要实现功能,启用或禁用模块,模块权限设置,模块上传设置等. 权限设置和上传设置以后专门考虑,先来显示或禁用模块. 1.在顶部导航栏添加管 ...
- asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
asp.net发布到IIS中出现错误:处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler” http:// ...
- [转]处理程序“PageHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
今天安装了windows7 开发web项目需要安装IIS,当安装完以后,web程序已经映射到了本地IIS上,运行出现如下错误提示 处理程序“PageHandlerFactory-Integrated” ...
- 【python】import 模块、包、第三方模块
xx.py文件,称为模块(module),把不同模块归整到一起的文件夹,叫做包(package) 不同包下的模块可以重名,但是都不能和系统内建模块重名 包里面一定要有个__init__.py文件,否则 ...
- 处理程序“WebServiceHandlerFactory-Integrated”在其模块列表中有一个错误模块“ManagedPipelineHandler”
开发web项目时需要安装IIS,在安装好IIS的Windows7本上发布asp.net网站时,web程序已经映射到了本地IIS上,但运行如下错误提示“处理程序“PageHandlerFactory-I ...
随机推荐
- TP5手动引入PHPEXCEL的方法
1.先在github里面下载PHPexcel这个类库 2.解压之后把它复制到extend里面 控制器代码如下: 1 <?php 2 /** 3 * Created by PhpStorm. 4 ...
- link标签链接CSS和@import加载的区别
link:基本语法 <link rel="stylesheet" href="路径"> @import 基本语法 <style> @im ...
- Ansible--常用模块使用
ansible命令解释 通过ansible命令执⾏的任务称为ad-hoc命令(任务),其实它是相对playbook⽽⾔的.通常,命令⾏⽤来实现ansible的批量管理功能,playbook⽤来实现批量 ...
- python接口测试—get请求(一)
python 做借口测试用到的是requests模块,首先要导入requests库,pip install requests 1.get直接请求方式 以豆瓣网为例: url = 'https://re ...
- 修改sqlserver2008数据库的排序规则 (转)
修改sqlserver2008数据库的排序规则 (转) 修改SQL server 2008服务器排序规则 SQL Server 2008安装好后,发现服务器排序规则不对,又不想重装SQL S ...
- 深度理解select、poll和epoll
在linux 没有实现epoll事件驱动机制之前,我们一般选择用select或者poll等IO多路复用的方法来实现并发服务程序.在大数据.高并发.集群等一些名词唱得火热之年代,select和poll的 ...
- Matplotlib:tick_params参数设置
1.tick_params语法 参数:axis : {‘x’, ‘y’, ‘both’} Axis on which to operate; default is ‘both’.reset : boo ...
- 使用python3.6和django1.9的xadmin 遇到坑,__unicode__()和__str__()
原因:python版本为3.6,Python3.X的版本不可使用__unicode__()(python2.x可用),应改为__str__().
- 解决win10系统dpi放大后,部分网页文字颜色很浅的问题
前段时间,换了个27寸的4k显示器.原始分辨率下文字太小,眼睛估计得看瞎 放大dpi后,这问题,那问题,好多 百度知道,淘宝,这网页文字颜色也非常的浅,看着眼睛很累人 看了半天是字体若的祸 暂时发现A ...
- Linux 小知识翻译 - 「Linux之父 Linus」
作为新年的第一次,这次想简单介绍下Linus这个人.(这篇文章是作者新年初写的,所以有这么句话) Linux之父,同时也是现在linux内核开发最终决定的人物就是「Linus Torvalds」.「L ...
