はじめに
今回の内容は、仕事の都合でDrupal開発することになっちゃった人向けです。
前提として、以下を想定して書きます。
- PHPer
- Drupalは初めて
- 2〜4人くらいで同時にDrupal開発
- Drupalのバージョンは8
Drupalで複数人で開発を始めるときに、
事前に頭に入れておいた方が良さそうなトピックをまとめて見ます。
Composer & Git
Drupalコアやモジュール、テーマはComposer(PHPのパッケージ管理)で一発導入可能です。
なので、DrupalコアのインストールからComposer使いましょう。
Using Composer to manage Drupal site dependencies
後述するconfig管理やカスタムモジュール、テーマを作成すると思いますので、通常のシステム開発同様Gitでソース管理は必須だと思います。
ComposerとGitはソースコード管理として機能がかぶるので、
どのように運用するか最初に決めましょう。
- Composerで管理する部分はGit管理しない
- Composer対象も一緒にGit管理する
個人的な全部Git管理が好きです。稼働環境に反映するときにComposer繋がらない!!という時が当たると辛いからです(笑)
開発エディタ・ツール
最低限、以下の内容ができるエディタ・ツールならなんでもOKだと思います。
- Drupalのコーディングスタンダードに準拠するフォーマットへ整える
- phpcsを即時実行できる環境を用意してコードをきれいに保つ
- 関数・メソッド・変数の補完機能を使って楽をする
- XDebugと連携してデバッグしやすい環境を整える
私はPHPStormが好きですが、VSCodeを使う方もいます。
開発環境
自分の手元に動作させるには、仮想マシンを用意するのが良い気がします。ベースはVagrant・Dockerでしょうか。
おまけとしてデモ環境で動かすには、Dockerをサクッと定義して起動してくれるLandoは便利でした。
Lando サンプル(Drupal Meetup Tokyoデモコード)
Configuration Management
Drupalはあらゆる設定内容がDBに登録されています。
DBのテーブル定義を決めてしまう内容ですらDBにあります。
それをyamlファイルで管理しやすくしようというのが、
Configuration Managementです。
Configuration Managementの基本は、
- 自分のサイト設定をすべてyamlへエクスポート
- インポートするときは、yaml一式の内容で強制的にサイト設定を更新する
です。
ファイルになれば、Gitで管理できてDiff確認も簡単ですよね。
Configuration Managementで気をつける点としては、
- 作業するまえに、他人の差分を取り込む
Git最新取得だけではなく、Drupalへのyamlインポートもやる - yamlをエクスポートしたときに、自分が変更していない差分があれば気にかける
です。
複数人開発で陥りやすいのは、自分の環境が最新だと思ってエクスポートしたら古い設定も出力されて開発が巻き戻る・・・的なところです。
コードレビューを必須にしたり、自動化スクリプトを作ったりして、開発ルールで防ぎましょう。
モジュール
モジュールの組み合わせでDrupalの機能が決まります。
ちょっとでも楽に開発するために少しづつ気にしてみてください。
- 拡張モジュール
- 拡張モジュールを探す癖をつける
- 拡張モジュールにバグがあってもissue・パッチを見つける努力をしてみる
- コントリビュートできたら最高ですね!
- 拡張モジュールに手を入れない。絶対!
- カスタムモジュール
- 他の拡張モジュールのソースコードを読んでみる
- Drupalのドキュメントを読んでみる
- Deprecatedメソッドは使わない
おしまいに
ものすごく偏った内容ですが、一度はぶち当たった問題ベースで書いてみました。
もっと他の話も知りたいという方は、
Drupal Meetup Tokyo や他の勉強会でお会いしましょう!