ホームページ > バックエンド開発 > PHPチュートリアル > Drupal:独自のDrushコマンドを作成する方法

Drupal:独自のDrushコマンドを作成する方法

William Shakespeare
リリース: 2025-02-21 10:50:12
オリジナル
605 人が閲覧しました

Drupal: How to Create Your Own Drush Command

重要な概念

  • Drush Extensibility:DrupalのコマンドラインインターフェイスであるDrush Drushは、モジュール内で定義されたカスタムコマンドで機能を拡張できます。 これにより、特定のDrupal操作を自動化できます
  • コマンド構造:
  • Drushコマンドの作成には、ファイル(モジュール内)、コマンド定義の関数、およびコマンドのロジックを実行するコールバック関数が含まれます。 .drush.inchook_drush_command()引数とオプション:
  • コマンドは、必須の引数とオプションのオプションを受け入れ、カスタマイズを強化できます。引数は関数パラメーターとして渡されますが、オプションは
  • を使用して取得されます。 drush_get_option()インタラクティブな入力と改良:
  • コマンドは、ユーザー入力を要求し、使用例を提供し、依存関係を指定できます(Drupal Bootstrapレベル、モジュール、コアバージョン)。
  • Drushは、ターミナルからDrupal Managementを合理化します。事前に構築されたコマンド(モジュールのダウンロード、有効化、更新)を提供している間、その真の力はカスタムコマンドを作成することにあります。このチュートリアルでは、シンプルで例示的なモジュールのためのDrushコマンドの構築を示しています。 焦点は、モジュールのコア機能ではなく、Drushのコマンド構造にあります。 例コードは[このリポジトリ](repository_link_here-利用可能な場合は実際のリンクに置き換えます)で使用できます。
  • サンプルモジュール

モジュールの機能は基本的な関数です:

この関数は、Drushがコンソールにメッセージを印刷する方法を示すために使用されます。 後で変更して、さまざまなコマンド機能を紹介します

demo_drushdrushコマンドファイル(

function demo_drush_print_statement() {
  drupal_set_message(t('Hello world!'));
}
ログイン後にコピー
ログイン後にコピー

モジュールのディレクトリ内で

を作成します。 drushは、demo_drush.drush.incコマンドフックとコールバック

demo_drush.drush.incDrushコマンドアーキテクチャは、2つの主要な部分で構成されています。.drush.inc実装(コマンドと構成の定義)とコールバック関数によってトリガーされたコールバック関数です。

から始めましょう これは、

としてエイリアス)という名前のコマンドを定義します。 コールバック関数(デフォルトではhook_drush_command())はコマンドのロジックを実行します:hook_drush_command()

/**
 * Implements hook_drush_command().
 */
function drush_demo_drush_command() {
  $items['drush-demo-command'] = array(
    'description' => 'Demonstrates Drush command functionality.',
    'aliases' => array('ddc'),
  );
  return $items;
}
ログイン後にコピー
ログイン後にコピー
Drush Cache()をクリアした後、「Hello World!」をプリントして<」を実行しています。コンソールへ。

drush-demo-command ddc引数とオプションdrush_drush_demo_command()

/**
 * Callback for the drush-demo-command command.
 */
function drush_drush_demo_command() {
  demo_drush_print_statement();
}
ログイン後にコピー
ログイン後にコピー
引数(必須)とオプション(オプション)でコマンドを強化します。 それらをフックに追加しましょう:

function demo_drush_print_statement() {
  drupal_set_message(t('Hello world!'));
}
ログイン後にコピー
ログイン後にコピー

さあ、drush ddc error --repeat=10ステートメントタイプを「エラー」に設定し、10回繰り返します。 それに応じてdemo_drush_print_statement()を更新し、コールバック関数:

/**
 * Implements hook_drush_command().
 */
function drush_demo_drush_command() {
  $items['drush-demo-command'] = array(
    'description' => 'Demonstrates Drush command functionality.',
    'aliases' => array('ddc'),
  );
  return $items;
}
ログイン後にコピー
ログイン後にコピー

ユーザー入力

不足している引数をインタラクティブに処理する:

/**
 * Callback for the drush-demo-command command.
 */
function drush_drush_demo_command() {
  demo_drush_print_statement();
}
ログイン後にコピー
ログイン後にコピー

の例 hook_drush_command()フックに例を追加します:

結論
...
'arguments' => array(
  'type' => 'Statement type (error or success).',
),
'options' => array(
  'repeat' => 'Number of statement repeats.',
),
...
ログイン後にコピー

このチュートリアルは、Drushコマンドを作成することの基本をカバーしています。 Bootstrapレベル、モジュールの依存関係、Drush APIドキュメントでコアバージョンの互換性などの高度な機能を調べます。 よくある質問(FAQ)

(これらは入力ですでによく書かれているので、書き直す必要はありません)

以上がDrupal:独自のDrushコマンドを作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート