CodeZine(コードジン)

特集ページ一覧

便利なツールで効率的にDrupal開発をしよう

Drupal 9で始めるWebサイト開発入門 第7回

  • LINEで送る
  • このエントリーをはてなブックマークに追加
2021/04/08 11:00

目次

開発

 開発についても、多様なツールが公開されています。コーディング中に何度も繰り返す単調な作業を自動化してくれるほか、きちんとベストプラクティスに沿ったコーディングを行うためのサポートをしているツール群です。

Drush

 Drupal開発者にとって、必須とも言える開発ツールがDrushです。Drupalの管理画面から行うさまざまな操作をCUIで行えます。Drushで開発者が頻繁に利用する操作をいくつか紹介します。

drush cr

 Drupalのキャッシュをクリアします。モジュールやテーマ内のコードを変更した際やサイトの不具合がある際には、まずこのコマンドを利用します。

drush en [モジュール名]

 モジュールを有効化します。対象となるモジュールに依存関係がある場合には、依存モジュールも一緒に有効化されます。

drush uli

 Drupalに管理者としてログインするためのワンタイムURLを発行します。--name=ユーザー名のオプションを付与することで、管理者以外のユーザーとしてもログインすることができます。

drush si

 Drupalのインストールを行います。CI/CDツールでテストやビルドをする際や、開発開始時に多用するコマンドです。

drush cex

 Drupalの設定情報をyamlファイルとしてエクスポートします。これにより、Drupalの設定情報がgitでバージョン管理することができるようになります。逆にインポートする際にはdrush cimコマンドを利用します。

Drushのインストール方法

 DrushはDrupalモジュールと同様にComposerでインストールするのが最新のベストプラクティスです。Drupalプロジェクトのルートディレクトリへ移動し、次のコマンドでdrushをプロジェクトにダウンロードします。

$ composer require drush/drush

 Drushの実行ファイルがプロジェクト直下の vendor/bin ディレクトリに配置されます。次のコマンドでDrushを実行できます。

$ vendor/bin/drush --version

 パスを指定せずにDrushコマンドを実行するには、Drush Launcherをインストールします。インストール方法はドキュメントを参照してください。

Drupal Console

 キャッシュのクリアなど、Drushと重複している機能がありますが、コードジェネレーターとしての機能が優れており、Drushと共存して活用されます。例えば、新しく自分でモジュールを作成する際に、drupal generate:moduleコマンドを利用することで、必要なファイルやクラスの雛形が自動で生成され、すぐにロジックのコーディングが開始できます。

Drupal Consoleのインストール方法

 Drupal ConsoleもComposerでインストールします。Drupalプロジェクトのルートディレクトリで、次のコマンドでダウンロードできます。

$ composer require drupal/console

 Drush同様、Drupal Console Launcherと呼ばれるツールがあり、vendor/bin/drupalのようにパスを入力せずコマンドを利用する際はダウンロードが必要です。

テスト

 Drupalにおいても、開発を行った際には自動テストを導入するのがベストプラクティスです。ここでは、Drupalにおいて標準的に使われる2つのテストツールを紹介します。インストール方法や利用方法については、ドキュメントを参照してください。

PHPUnit

 PHPUnitはPHPアプリケーション用のテストフレームワークで、Drupalに標準搭載されています。名称にUnitとありますが、単体テストだけでなく、Drupalコアシステムを最小限起動させて行うカーネルテスト、ブラウザを起動させて動作を確認するブラウザテスト、JavaScriptが有効化されたブラウザでAjaxなどの動作を検証するWebドライバーテストも行えます。

 PHPUnitをDrupalプロジェクトで使用するには、Composerでdrupal/core-devパッケージをインストールします。

$ composer require --dev drupal/core-dev

Behat

 BehatはBDD(べヘイビア駆動開発)フレームワークであり、英語など人間の言語のようにテストを記述することができます。以下が一例です。

Scenario: Wilson posts to his own blog(Wilsonがブログを投稿するシナリオ)
 Given I am logged in as Wilson(Wilsonというユーザーでログインする)
 When I try to post to "Expensive Therapy"(Expensive Therapyという記事を投稿した時)
 Then I should see "Your article was published."(Your article was published.という表示がされる)

 この記述に応じて、システム側が自動でブラウザを起動し、指定された動作を行い、結果を表示します。

 このように、エンジニア以外にも理解しやすいテストを記述することで、プロジェクトメンバー内でのテスト記述へのハードルを下げるとともに、そのままドキュメントとするなどしてプロジェクトの効率化を図れます。


  • LINEで送る
  • このエントリーをはてなブックマークに追加

バックナンバー

連載:Drupal 9で始めるWebサイト開発入門

著者プロフィール

  • 岸 俊兵(キシ シュンペイ)

     カナダ・イエローナイフでウェブ開発者として勤務していた際、エンタープライズ向けオープンソースCMSのDrupalによる開発に従事。帰国後、Drupalのヘビーユーザーであるジョンソン・エンド・ジョンソン株式会社の社内SE等を経て、2019年1月よりアクイアジャパンのソリューションエンジニアとして勤...

あなたにオススメ

All contents copyright © 2005-2022 Shoeisha Co., Ltd. All rights reserved. ver.1.5