Drushのカスタムコマンドを作成する
コマンドラインに"Hello!"と表示するだけの簡単なカスタムコマンドを作ります。
# drush hello
Hello!
まずはカスタムモジュールを作り、その中でコマンドを定義します。
今回は"drush_hello"というモジュール名にします。
作成するファイル
- drush_hello.info.yml
- drush.services.yml
- composer.json
- Hello.php
ディレクトリ構造は次のようにします。
では順に作成していきましょう。
① drush_hello.info.yml
name: Drush Hello
description: 'Hello!と表示します.'
core: 8.x
type: module
お馴染みのファイルだと思います。特筆する箇所は特にありません。
② drush.services.yml
services:
drush_hello.commands:
class: \Drupal\drush_hello\Commands\Hello
tags:
- { name: drush.command }
コマンドの中身が書かれているクラスを規定します。
ファイル名は「モジュール名.services.yml」ではなく「drush.services.yml」にする必要があります。(カスタムDrushコマンドの決まりごとのようです)
③ composer.json
{
"name": "drupal/drush_hello",
"type": "drupal-module",
"autoload": {
"psr-4": {
"Drupal\\drush_hello\\": "src/"
}
},
"extra": {
"drush": {
"services": {
"drush.services.yml": "^9"
}
}
}
}
このファイルはDrush10で必須となるようです。Drush9では無くても動作するようですが、一応作成しておきましょう。
④ Hello.php
<?php
namespace Drupal\drush_hello\Commands;
use Drush\Commands\DrushCommands;
class Hello extends DrushCommands {
/**
* @command hello
*/
public function hello() {
$this->output()->writeln('Hello!');
}
}
このファイルはdrush.services.ymlに記述したとおり、drush_hello/src/Commands/に作成します。
コメント中の「@command hello」でコマンドを定義しています。"drush hello"と打つとhello()が実行され、"Hello!"という文字列が表示されます。
これでモジュールは一通り完成です。
モジュールの有効化
ブラウザからサイトにアクセスし、今作成したモジュールを有効化します。
コマンドの実行
これでコマンドを実行できるようになりました。
コマンドライン上で"drush hello"と打ってみます。
# drush hello
Hello!
- 閲覧数 586
コメントを追加