composer経由でパッケージをインストールする方法?


8

drupal 7カスタムモジュールにライブラリを追加したいと思います。ライブラリはcomposer経由でインストールできますが、インストールの解決策が見つかりませんか?このライブラリをインストールするにはどうすればよいですか?「コンポーザーマネージャー」をインストールしましたが、まだ実行できません。


この質問の答えも知りたいです。
itsdarrylnorris 2015

1
これに対する近い投票に同意しません。Drupalでcomposerを使用する方法は間違いなく話題です。
mpdonadio

回答:


6

はじめに、composer.jsonモジュールにファイルを追加します。ここで必要なのrequireは、外部ライブラリを含むセクションだけです。

Composer managerすべての依存関係を組み合わせる1つの方法ですが、Drupalにautoload.phpファイルをロードさせる他のオプションがあります。私が好む手法composer.jsonは、Drupalルートにプロジェクトレベルのファイルを作成し、モジュールcomposer_vendorを使用してautoload.phpファイルを含めることです。

開始する最も簡単な方法は、composer_generate Drush拡張機能を使用してプロジェクトレベルのcomposer.jsonファイルをビルドすることです。

$ drush dl composer_generate $ cd /path/to/drupalroot $ drush composer-generate > composer.json $ composer install

Composer-generateは、Drupalサイトで現在使用されているすべてのプロジェクトに加えてcomposer_vendorを追加するため、問題なく機能するcomposer installはずです。ここでの主な魔法は、テンプレートに追加されたカスタムオートローダーにあります。出力を見て、何が含まれていたかを確認してください。

もちろん、ここでは注意が必要です。デフォルトのテンプレートはすべてのモジュールをsites / all / modules / contribに配置します。これが必要でない場合は、composer installを実行する前にテンプレートを編集できます。

変更されたモジュールがある場合にも注意する必要があります。ハッキングされたコンテンツに対処する方法はいくつかありますが、これはこの1つの質問の範囲を少し超えています。

更新

Drushを実行したくない場合は、プロジェクトhttps://github.com/drupal-composer/drupal-projectを使用して、独自のcomposer.jsonファイルを手動で入力することもできます。これは、composer-generateが基づくテンプレートです。


ドラッシュは使用しません。それはこのlibについてです:github.com/giggsey/libphonenumber-for-php
gregab

Drushをインストールして、composer_generateツールをダウンロードして実行するためにのみ使用できます。これは、独自のcomposer.jsonファイルを手動で入力するよりも高速です。
greg_1_anderson 2015

@ greg_1_andersonがメインの質問に加えて、サードパーティのAPIのベンダーautoload.phpをどのようにロードできますか?
Sukhjinder Singh

Drupal 8がオートローダーをロードするので、Drupal 7について質問していると思います。上記で推奨したcomposer_vendorモジュールを使用するか、単にinclude.settingsファイルにincludeを追加します。
greg_1_anderson 2016
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.