Drupal Composerレシピ

この投稿では、Drupal Composerテンプレートを使用して作成されたDrupalプロジェクトで作業中に蓄積したComposerを使用するためのレシピをいくつか共有したいと思います。 また、既存のDrupalプロジェクトをComposerに転送する方法も検討します。

まだDrupalプロジェクトでComposerを使用していない場合は、すぐに使用を開始する必要があります! Drupal Composerテンプレートは、このタスクに役立ちます。 新しいプロジェクトの作成は非常に簡単です。

それでもわからない場合は、Drupal Composer開発の利点をご覧ください。


(すべてのレシピはDrupal 8の使用を暗示していますが、Drupal 7でも機能するはずです)

プラグインモジュールのインストール



Drupalカーネルとモジュールの更新



パッチパッケージ


cweagans / composer-patchesプラグイン(Drupal Composerテンプレートに含まれています)は、composer.jsonの追加セクションで説明されているパッチを使用します。

  "extra": { "patches": { "<PACKAGE/NAME>": { "<PATCH DESCRIPTION>": "<PATH/TO/PATCH/OR/URL>", ... }, ... } } 

例:

  "extra": { "patches": { "drupal/core": { "Fix language detection": "patches/2189267-24.patch" } } } 

パッチを追加したら、次を実行します。


Githubを使用してカスタム/フォークされたモジュールをインストールする


モジュールリポジトリに独自のcomposer.jsonファイルが含まれている場合


composer.jsonファイルの「repositories」セクションにリポジトリーを登録します。

  "repositories": [ { "type": "vcs", "url": "https://github.com/<REPOSITORY/NAME>" }, ... ], 

composer require drupal/<MODULE_NAME>:dev-<BRANCH_NAME>#<COMMIT_HASH>を使用してモジュールをインストールします。

composer.jsonファイルがモジュールリポジトリにない場合


もう少し高度なオプションを使用します。

  "repositories": [ { "type": "package", "package": { "name": "drupal/<MODULE_NAME>", "version": "dev-custom", "type": "drupal-module", "source": { "type": "git", "url": "git@github.com:<REPOSITORY/NAME>.git", "reference": "<BRANCH-NAME>" } } }, ... ], 

composer require drupal/<MODULE_NAME>:dev-custom#<COMMIT_HASH>を使用してモジュールをインストールします。

宛先ディレクトリがモジュール/ contribと異なる場合


上記のレシピに加えて、composer / installersプラグインを使用します。

  "extra": { "installer-paths": { "web/modules/custom/<MODULE_NAME>": ["drupal/<MODULE_NAME>"], ... } } 

JSライブラリをインストールする


人気のあるJSライブラリは、 Compagerを使用して簡単にインストールできます。これは、(おそらく) Packagistリポジトリにすでに存在しているためです。 難点は、ほとんどのDrupalモジュールが「ライブラリ」ディレクトリにJSライブラリをインストールする必要があるのに対し、Composerは「ベンダー」ディレクトリにインストールすることです。

composer / installersプラグインはインストールパスを再割り当てできますが、依存関係としてそれを示すパッケージに対してのみです。 したがって、composer.jsonライブラリファイルをcomposer / installerに依存するものに置き換える必要があります。

例を見てみましょう:

  "repositories": [ { "type": "package", "package": { "name": "enyo/dropzone", "version": "4.3", "type": "drupal-library", "source": { "url": "https://github.com/enyo/dropzone.git", "type": "git", "reference": "master" }, "dist": { "url": "https://github.com/enyo/dropzone/archive/v4.3.0.zip", "type": "zip" }, "require": { "composer/installers": "~1.0" } } }, ... ], ... "extra": { "installer-paths": { "web/libraries/{$name}" : ["type:drupal-library"], ... } } 

このコードをcomposer.jsonに追加しcomposer require enyo/dropzone:4.3composer require enyo/dropzone:4.3を実行してライブラリをインストールします。 Composerがリポジトリを複製する代わりにzipアーカイブをロードできるように、特定のバージョンを指定し、「dist」セクションを追加したことに注意してください。

既存のパッケージを分岐バージョンに切り替える


composer.jsonにforkリポジトリーを登録します。

  "repositories": [ { "type": "vcs", "url": "https://github.com/<REPOSITORY/NAME>" }, ... ], 

composer require <PACKAGE/NAME>:dev-<BRANCH_NAME>#<COMMIT_HASH>実行composer require <PACKAGE/NAME>:dev-<BRANCH_NAME>#<COMMIT_HASH>

既存のDrupal 8プロジェクトをComposerに切り替える


Source: https://habr.com/ru/post/J313298/


All Articles