Skip to content

Latest commit

 

History

History
38 lines (23 loc) · 2.98 KB

define-plugin-dependency.rst

File metadata and controls

38 lines (23 loc) · 2.98 KB

プラグインで依存性を定義する方法

依存性をサポートしたプラグインの作成方法

概要

OpenPNE プラグインは PEAR スタイルの依存性をサポートしています。

PEAR パッケージの依存性については http://pear.php.net/manual/ja/guide.developers.package2.dependencies.php にて知ることができるので参考にしてください。

プラグイン開発者は PEAR のドキュメントで紹介されているように、 package.xml に <dependencies> を手で記述することで依存性の定義をおこなうことができます。しかしながら、いままで、開発者は package.xml を opPlugin:define や opPlugin:release といったタスクによって自動で生成してきており、 package.xml を自分の手で記述する行為は苦痛になると思われます。

そこで、 OpenPNE では package.xml に <dependencies> を生成する機能も提供することにしました。

dependencies.yml による依存性の定義

OpenPNE 3.5.1 以降で opGenerate:plugin タスクを実行すると、生成したプラグインに dependencies.yml.sample というファイルが作成されます。このファイルを dependencies.yml としてコピーして編集することで、 opPlugin:define や opPlugin:generate による package.xml の生成時に <dependencies> の記述が一緒に生成されるようになります。

OpenPNE 3.5.1 未満のバージョンで生成したプラグインについては lib/task/skeleton/opPlugin/dependencies.yml.sample からプラグインのルートディレクトリに dependencies.yml としてコピーして使用すれば同様のことがおこなえるようになります。

なお、このファイルの記述方法についてはファイル自体にコメントによって含まれている説明を参照してください。

依存性チェックの挙動

プラグインインストールの際にバージョン指定がされなかった場合、依存性を満たすパッケージを探し、依存性を満たすものが見つからなければインストールに失敗します(従来の挙動)。

バージョン指定された場合、ダウンロードしたパッケージのための依存性を解決できない場合、詳細なエラーメッセージを表示して依存性の解決を促すように 3.5.1 で変更をおこないました。 (symfony のプラグインマネージャでは自動的にパッケージをダウンロードして依存性を解決することはできないため、依存性の解決自体は手動で行う必要があります)

依存性を解決できなかった場合のエラーメッセージは以下のように表示されるので参考にしてください。

http://26.media.tumblr.com/tumblr_kz23df0UNC1qz6qi7o1_500.png