使用 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。