Drupal 8.でカスタムTwitter Pullモジュールを作成しようとしています。8- https://github.com/abraham/twitteroauth を含めたいと思います。
ルートcomposer.jsonファイルのcomposerを介して追加するか、Composer Managerを使用してcomposer.jsonを作成することにより、ファイルを自分のモジュールのルートに置くので、この質問のために、他にどのようにライブラリを含めて使用することができますか?
カスタムモジュールの.ymlファイルに依存関係を追加できますか?
カスタムモジュールでこのライブラリの名前空間/オートロードをどのように処理しますか?
Drupalのメインcomposer.json
では、 Composer Merge Plugin を使用して、特定のディレクトリでcomposer.json
ファイルをスキャンし、それらをメインcomposer.json
にマージできます。
次に、サードパーティライブラリを必要とするカスタムモジュールにcomposer.json
を含めます。ルートcomposer.json
では、マージプラグインが必要であり、extra
セクションの下で特定のディレクトリを含めるように構成します。
{
"require": {
"wikimedia/composer-merge-plugin": "dev-master"
},
"extra": {
"merge-plugin": {
"include": [
"web/modules/custom/*/composer.json"
]
}
}
}
カスタムモジュールのサードパーティライブラリがGitHubで利用可能であり、ライブラリをダウンロードする場所を定義する場合(特にすべてのフロントエンドライブラリに非常に役立つ)、 Composerカスタムタイプインストーラーを使用できます。 メインcomposer.json
内。
次に、カスタムモジュールのcomposer.json
の[repositories
]セクションにサードパーティのライブラリを必要とし、type
セクションで事前に構成したパッケージを[extra
に割り当てます。メインcomposer.json
のlibをダウンロードする場所を定義します。
"repositories": [
{
"type": "package",
"package": {
"name": "select2",
"version": "4.0.3",
"type": "theme-library",
"source": {
"url": "https://github.com/select2/select2.git",
"type": "git",
"reference": "tags/4.0.3"
}
}
}
]
そして、メインのcomposer.json
の対応するextra
セクション:
"extra": {
"custom-installer": {
"theme-library": "web/themes/custom/MYTHEME/libs/{$name}"
}
}
もちろん、簡単にするために、メインcomposer-merge-plugin
からすべて(custom-installer
およびcomposer.json
およびGitHubリポジトリを必要とする)を実行することもできます。私はそれをお勧めします。
その場合は、composer require PACKAGENAME
ファイルにlibを手動で組み込んだ後、少なくとも1回composer require select2
(この例ではcomposer.json
)を実行します。
最後に重要なことですが、ライブラリをMYMODULE.libraries.yml
およびhook_page_attachments
にバインドすることを忘れないでください(後でMYMODULE.module
から呼び出されます)。 スタイルシート(CSS)とJavaScript(JS)をDrupal 8モジュール に追加するを参照してください。