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