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