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

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

今回は「便利なツールで効率的にDrupal開発をしよう」についてご紹介します。

関連ワード (PHP、アプリケーション開発、技術解説等) についても詳細と、関連コンテンツとをまとめていますので、参考にしながらぜひ本記事について議論していってくださいね。

本記事は、CodeZine様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


対象読者

  • HTML、JavaScript、PHPなどWeb開発の基礎理解がある方
  • Webサイト、アプリケーション開発の経験者

Drupal開発の流れ

 Drupalでサイト構築を行う際の流れは、他のWebアプリケーションと同様に、1. ローカル開発環境の構築、2. 開発(テーマ、モジュール開発)、3. テスト、4. リリース(本番デプロイ、ホスティング)です。Drupalにはこれらのプロセスをサポートする多くのツールが用意されているので、以下に紹介します。

ローカル開発環境

 ローカル環境でDrupalを動作させるためには、いくつかの選択肢があります。1つはこの連載で使用したAcquia Dev Desktopですが、その他にもDockerや仮想マシンを利用したローカル開発環境を構築するツールがあります。

Lando

 Drupalの開発環境をDocker上に展開するツールです。簡単なコマンドラインの操作で、コンテナ上にLAMP環境を構築でき、設定項目のカスタマイズも可能です。

  • Lando公式サイト
  • Lando公式ドキュメント

Landoのインストール方法

 GitHubにインストール用ファイルが公開されています。Macならdmg、Windowsならexeファイルをダウンロードし、実行すればインストール完了です。

Landoの実行方法

 新しいDrupalプロジェクトを作成し、Landoで起動する方法をご紹介します。まずComposerでDrupalプロジェクトを作成し、プロジェクトのルートディレクトリに移動します。

  $ composer create-project drupal/recommended-project marucha_with_lando && cd marucha_with_lando  

 Landoの初期設定を行うには、Drupalのプロジェクトがあるディレクトリでlando initコマンドを利用します。

  $ lando init   

 いくつかプロンプトが表示されるので、以下を選択してください。

1. From where should we get your app’s codebase?(コードベースの場所)

 → current working directory(現在のディレクトリ)

2. What recipe do you want to use?(利用するレシピ=構築した環境で動作させるアプリケーション)

 → drupal9

3. Where is your webroot relative to the init destination?(Webのルートディレクトリの場所)

 → web

4. What do you want to call this app?(アプリケーションの名称)

 → my-lando-drupal9

 以上でLando環境の初期設定が完了です。コンテナを起動するにはlando startコマンドを使用します。

  $ lando start  

 起動が成功すると、ローカルサーバーのアクセス先URLがコンソールに出力されます。ブラウザでアクセスするとDrupalの初期インストールが行えます。

 データベースの接続情報などはlando infoコマンドで確認できます。

  $ lando info  

 もしPHPのバージョンやWebサーバーソフト(Apache、nginxなど)、データベースの種類(mysql、 mariadb、 postgres)を変更したい場合は、ルートディレクトリ内にある.lando.ymlを編集します。具体的な設定方法については、Landoのドキュメントを参照してください。

Drupal VM

 Drupal VMはLandoのようなDocker上ではなく、VagrantとAnsibleをベースとした仮想マシン上にローカル開発環境を構築するツールです。LandoはPHPやMySQLのバージョン切り替えなどが容易にできるのですが、特にMac OS上で利用する際にはディスクの書き込みが遅く、Drupal管理画面の遷移に時間がかかるという欠点があります。仮想マシンの方がリソースの消費は大きいですが、上記の理由から一定のシェアがあります。

  • Drupal VM公式サイト
  • Drupal VM公式ドキュメント

Drupal VMの実行方法

 VagrantとVirtual Boxはあらかじめインストールが必要ですが、Drupal VMはVagrantの設定ファイルであるため、その他特別なソフトのインストールは必要ありません。公式サイトからZipファイルをダウンロードし、展開したディレクトリでvagrant upコマンドを実行するだけで、Drupalの初期インストールまでが完了します。

 PHPのバージョンやWebサーバーソフトの切り替えは、ルートディレクトリにあるdefault.config.ymlをconfig.ymlのファイル名でコピーし、内容を変更することで設定できます。設定できる内容はファイル内コメントに記載されていますが、より細かい設定についてはドキュメントを参照してください。

開発

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

Drush

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

  • Drush公式サイト
  • 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公式ドキュメント

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  

  • PHPUnit公式サイト
  • PHPUnit公式ドキュメント
  • PHPUnitについて(Drupal公式ドキュメント)

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.という表示がされる)  

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

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

  • Behat公式サイト兼ドキュメント

Drupal向けホスティングサービス

 最後に、Drupalをホスティングするサービスを紹介します。DrupalはLAMP環境が用意できれば、レンタルサーバーやVPSでホスティングすることが可能です。しかし、サーバーリソースに制限がある、メンテナンスの工数が多くかかるなどさまざまな困難があります。

 Drupal向けホスティングサービスは、PaaSとしてリソースの調整やサーバーのメンテナンスを行ってくれるため、開発者はDrupalの開発のみに集中することが可能です。今回紹介する2社は開発、ステージング、本番環境をセットで提供しており、ドラッグ&ドロップでソースコードやデータベースのデプロイができるなど、直感的なUIでデプロイおよびリリースが可能です。

Acquia

 Drupalの創設者兼プロジェクトリードである、ドリス・バイタルト(Dries Buytaert)が創業した企業がAcquiaです。2007年からDrupalのホスティングサービスおよび有償サポートを提供しています。最近ではマーケティングオートメーションツール(MA)や顧客データプラットフォーム(CDP)まで製品ラインアップを拡充し、総合的にDXを行うためのプラットフォームとなりました。

 ホスティングサービスのみの利用も可能であり、企業向け製品のAcquia Cloud EnterpriseはAmazon Web Services上に厳重なセキュリティと高可用性構成を持つ環境構築し、PaaSとして提供しています。

 ブラウザ上でコーディングが行えるリモートIDE、CI/CD、デバッグ用ログ解析機能が利用できるなど、開発者が快適かつ迅速にDrupal開発を行える環境が整っており、30日間の無料トライアルが可能です。2018年に日本法人を設立しており、企業向けDrupalホスティングおよびDX製品をクラウドサービスとして提供しています。

  • Acquia公式サイト
  • Acquia製品公式ドキュメント

Pantheon

 PantheonもDrupalのホスティングを提供している企業です。Drupalに加え、Wordpressのホスティングにも対応しており、Google Cloud Platform上で稼働しています。開発者向け無料環境が期限なしで利用できるため、開発者の検証用として活用でき、シンプルなサイト構築が手軽に行えます。

  • Pantheon公式サイト
  • Pantheon公式ドキュメント

最後に

 今回は、Drupalにおける環境構築、開発、テスト、リリース(ホスティング)を支援するさまざまなツールを紹介しました。オープンソースであるDrupalは利用者が全世界に多く存在するため、さまざまな周辺ツールがコミュニティ有志から提供されています。ぜひ、これらを活用し、快適にDrupal開発を行ってください。

さらばギザギザ! NVIDIAがアンチエイリアスを技術解説 - …

 · NVIDIAが報道関係者向けの技術説明会を開催し、最新のアンチエイリアシング技術について解説した。 エイリアシングとは、斜線や曲線を描くと ...

光電センサ 概要 - 技術解説 | オムロン制御機器

光電センサは、光の様々な性質を利用して物体の有無や表面状態の変化などを検出するセンサです。ここでは、光電センサの概要を解説します。

COMMENTS


15617:
2021-04-09 18:01

女子校生の腰つき 演劇部編  

15616:
2021-04-09 16:28

天然格闘少女ちひろちゃん 1|

15618:
2021-04-09 00:53

最強のポイントサイト 「モッピー」 ここを使わないとポイントサイトは語れない

Recommended

TITLE
CATEGORY
DATE
Voicyの月間ユーザー数が250万人超に Clubhouse効果により3カ月で2.5倍増
企業・業界動向
2021-04-13 07:48
「Apache Arrow 3.0.0」リリース、高性能アプリケーション開発プラットフォームの最新版
IT関連
2021-02-05 07:41
宅配物受取サービス「ecbo pickup」がクリーニング「ルビー」と業務提携、15店舗で導入開始
シェアリングエコノミー
2021-04-10 11:25
Google、オープンソースソフトウェアの脆弱性対処のためのフレームワークを提案
IT関連
2021-02-10 02:48
「Microsoft Defender for Endpoint」がArm版「Windows 10」に正式対応
IT関連
2021-04-08 01:46
「富士通研究所」も富士通に吸収合併 4月1日付の組織再編で
企業・業界動向
2021-01-29 10:21
イオン銀行に不正アクセス、個人情報2062件が流出 情報管理用クラウドツールで設定ミス
クラウドユーザー
2021-02-23 19:29
受講者満足度90%以上のプログラミングスクール【DMM WEBCAMP】
DMM WEBCAMP
2021-02-23 19:29
2021年2月版、フルリモートでのエンジニア採用を実施している企業のカオスマップが公開
IT関連
2021-03-03 12:01
経済安全保障や地政学リスクでの情報セキュリティに企業はどう対処すればよいか
IT関連
2021-04-08 13:31
コミュニケーションプラットフォーマー「Twilio」日本法人の挑戦
IT関連
2021-03-26 02:30
コンパクトキーボードにラズパイ4を組み込んだ「Raspberry Pi 400」の可能性
IT関連
2021-02-07 21:26
「Elasticsearch」のライセンス変更でAWSが示した対応方針
IT関連
2021-01-28 01:37
Linuxが「M1搭載Mac miniで完全に使えるように」とCorelliumが発表
IT関連
2021-01-22 19:14
約8割のエンジニア、情報のインプットに「技術ブログ」を活用
IT関連
2021-03-09 07:07
AWS認定ソリューションアーキテクト アソシエイト試験突破講座 - 初心者向け20時間完全コース-
Udemy
2021-03-09 07:07