使用 Drupal Console 和 Drush 加速 Drupal 开发

已发表: 2022-02-22

关于 Drupal 8 如何不仅为用户提供现代化的数字体验,而且还为 Drupal 开发人员简化了开发工作,我们已经写了大量的文章(我们对此很感兴趣)。 在本文中,我们将讨论两个这样的 Drupal 8/9 实用工具,它们极大地简化和改进了您使用 Drupal 代码、模块和安装的方式——Drupal Console 和 Drush。

Drupal 控制台

什么是 Drupal 控制台

自从 Drupal 8 的进步,已经有必要添加大量的样板代码来构建一个新的模块。 当然,您可以简单地复制和粘贴代码,但重复这样做可能会导致很多错误。 没关系。 我们是人。 幸运的是,我们有 Drupal 控制台——您在 CLI(命令行界面)上运行的一套工具,可让您自动生成样板代码。 它利用 Symfony 控制台和其他第三方组件来生成构建 Drupal 8/9 模块所需的大部分代码。

什么是德鲁什

Drush (Drupal + Shell) 是 Drupal 的原始 CLI 工具。 它可以让您轻松启动新的 Drupal 网站,并帮助您简化开发和管理任务。 Drush 附带了许多易于实现的命令,可让您与 Drupal 安装、主题、模块等进行交互。 您可以使用 Drush 执行的其他一些任务是导出/导入配置、缓存、更新贡献模块、更新数据库等等。

Drush 与 Drupal 6/7/8/9 配合得很好,并提供了现代开发实践的优势。 它有助于在迁移现有 Drupal 模块和创建新模块期间节省开发时间,从而提高生产力。 在本文中了解如何创建您自己的自定义 Drush 命令。

安装 Drupal 控制台

Drupal 控制台可以通过多种方法安装,如 composer、curl、phar 等。以下是使用 composer 安装它的示例:

通过 composer 全局安装

composer global require drupal/console

现场特定安装

1. 在 CLI 中导航到 Drupal 站点:

 cd /path/to/drupal_site

2.执行composer require命令:

 composer require drupal/console:~1.0 --prefer-dist --optimize-autoloader

安装 Drush

Drush 可以通过多种方法安装,例如 composer、curl 或 phar。 以下是使用 composer 安装它的示例:

通过 composer 全局安装

composer global require drush/drush

现场特定安装

1. 在 CLI 中导航到 Drupal 站点:

 cd /path/to/drupal_site

2.执行composer require命令:

 composer require drush/drush

Drupal 控制台命令和用法

查看一些最流行和最有用的 Drupal 控制台命令以及何时可以使用它们。

  • Drupal 调试命令

  • 在处理主题时识别断点:
 drupal debug:breakpoints {theme_name}

示例:drupal debug:breakpoints bartik

  • 在使用服务时轻松找到服务的类和名称:
 drupal debug:config:settings
  • 当您遇到令人痛苦的断块时识别故障点:
 drupal debug:plugin block broken
  • 生成自定义模块

使用以下命令在一分钟内创建自定义模块:

 drupal generate:module \ --module="modulename" \ --machine-name="modulename" \ --module-path="/modules/custom" \ --description="My Awesome Module" \ --core="8.x" \ --package="Custom" \ --module-file \ --composer \ --test \ --twigtemplate
  • 生成自定义表单

自定义表单要求在项目中非常常见。 使用此命令轻松创建自定义表单:

 drupal generate:form \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • 生成配置表单

与自定义表单一样,我们也需要管理员配置的表单。 使用此命令,您可以轻松创建它们:

 drupal generate:form:config \ --module="modulename" \ --class="DefaultForm" \ --form- \ --config-file \ --path="/modulename/form/default"
  • 生成控制器

使用自定义表单,您将需要控制器。 您可以使用以下命令轻松创建自定义控制器:

 drupal generate:controller \ --module="modulename" \ --class="DefaultController" \ --routes='"title":"ControllerMethod", "name":"modulename.default_controller_hello", "method":"hello", "path":"/modulename/hello/{name}"' \ --test
  • 生成自定义实体

创建自定义实体不必费时,使用此命令可以快速轻松地创建它:

 drupal generate:entity:content \ --module="modulename" \ --entity-class="DefaultEntity" \ --entity-name="default_entity" \ --base-path="/admin/structure" \ --label="Default entity" \ --is-translatable \ --revisionable --has-forms
  • 生成定制服务

此命令可帮助您创建自定义服务:

 drupal generate:service \ --module="modulename" \ --name="modulename.default" \ --class="DefaultService" \ --interface \ --interface-name="InterfaceName" \ --path-service="/modules/custom/modulename/src/"
  • 创建内容,如用户:创建

要从后端创建用户,您无需打开浏览器并使用 admin 登录,然后创建帐户。 只需使用此命令即可快速创建用户:

 drupal user:create username password \ --roles='authenticated' \ --email="[email protected]" \ --status="1"
  • 生成类似块的插件

Drupal Console 还能够生成许多插件,例如块。 以下是创建自定义块的示例:

 drupal generate:plugin:block \ --module="modulename" \ --class="DefaultBlock" \ --label="Default block" \ --plugin- \ --theme-region="header" \ --inputs='"name":"inputtext", "type":"text_format", "label":"InputText", "options":"", "description":"Just an input text", "maxlength":"", "size":"", "default_value":"", "weight":"0", "fieldset":""'

有关更多 Drupal 控制台命令和用法,请查看这些可用命令。

最受欢迎的 Drush 命令

刷cr 重建 Drupal 缓存
德鲁什西姆导入所有配置文件
德鲁什导出配置文件
德鲁什乌里使用一次性登录 url 登录
drush en {module_name} 启用自定义或 contrib 或核心的任何模块
drush pmu {module_name} 禁用和卸载任何模块
催促下午:名单列出所有模块的包、模块名称、版本和状态
快速更新数据库升级后更新数据库
急速看门狗:列表(ws) 列出所有看门狗消息
急速看门狗:尾巴(重量) 连续尾部看门狗消息
德鲁什看门狗:尾巴--type = php 具有特定严重性类型的连续尾看门狗消息

一些更酷的 Drush 命令

急速状态提供当前 Drupal 安装的概述
快速生成与 Drupal 控制台一样, drush generate命令有助于生成实体、插件等
催促下午:安全检查 Drupal Composer 包的安全更新
快速迁移:状态列出所有具有当前状态的迁移
drush 用户:密码 {用户名} {密码} 设置用户密码
刷用户:阻止帮助阻止用户
刷用户:角色:添加帮助添加用户角色
drush sql转储使用 mysqldump 或等效工具将 Drupal 数据库导出为 SQL。