Drupalを使っていて、アップデートなどのメンテナンス作業がめんどくさく感じたのでcomposerを利用した方法に変更。これが意外と便利だったのでメモ。
composerのインストール
composerのインストールはDrupalをインストールする環境にあった方法でインストールする。
composerを利用してdrupalの環境を作成する
$ composer create-project drupal-composer/drupal-project:8.x-dev DRUPALPROJECT --stability dev --no-interaction
DRUPALPROJECT の部分は、任意の名称。DRUPALPROJECT で指定された名前のディレクトリが作成される。
作成されたディレクトリの中には以下のファイルが作成される
- .gitignore
- composer.json
- composer.lock
- drush
- LICENSE
- phpunit.xml.dist
- README.md
- scripts
- .travis.yml
- vendor
- web
Drupal本体は web ディレクトリに入ってる。
drupalを動かす
- DRUPALPROJECT に config ディレクトリを作成し、書き込み権限を許可しておく。(作成しておかないとDrupalのインストールウィザードの途中でエラーが出て進めなくなる)
- DRUPALPROJECT に指定したディレクトリ内にある、 web ディレクトリをドキュメントルートに設定する。ブラウザからアクセスするとインストールウィザードが開始される。
- ウィザードに従ってインストールを完了させる。
moduleやthemeを追加する。
モジュールやテーマの追加もcomposerコマンドで用意に行える。
インストールでは無く、あくまで追加(取得)。取得後に管理画面でインストール作業を行なう事になる。
composer.json の変更
モジュールやテーマを追加作業を実施する前に composer.json を見直す
moduleとthemeのインストール先を変更
composer.jsonの extra 部分について
{
"extra": {
"installer-paths": {
"web/core": ["type:drupal-core"],
"web/libraries/{$name}": ["type:drupal-library"],
"web/modules/contrib/{$name}": ["type:drupal-module"],
"web/profiles/contrib/{$name}": ["type:drupal-profile"],
"web/themes/contrib/{$name}": ["type:drupal-theme"],
"drush/contrib/{$name}": ["type:drupal-drush"]
}
}
}
"web/modules/contribute/{$name}": の記述に注目する。現状のままモジュールの取得を実施すると、modulesディレクトリの中にcontributeディレクトリが作成される。contributeディレクトリの中にモジュールが設置されることになる。必要な場合はこれらのパスを変更する。
モジュールやテーマの検索
DRUPALPROJECT ディレクトリ内で以下のコマンドを実行する。
$ composer search drupal/MODULENAME
モジュールやテーマのインストール
DRUPALPROJECT ディレクトリ内で以下のコマンドを実行する。
$ composer require drupal/MODULENAME
モジュールのバージョンを指定する場合は MODULENAME の後ろにバージョンを追加する。
$ composer require drupal/MODULENAME:MODULEVERSION
モジュールやテーマの削除
DRUPALPROJECT ディレクトリ内で以下のコマンドを実行する。
$ composer remove drupal/MODULENAME