[OpenPNE3]管理画面付きプラグイン(opFreepagePlugin)#6 プラグインのパッケージング
前回まででopFreepagePluginの開発部分は完了しました。今回はプラグインのバージョン情報を定義し、アーカイブ化することで、外部に公開できるファイルにしたいと思います。なお、このプラグインのパッケージング方法はOpenPNE 3.0.0で確認しているものです。近いうちにプラグインリリース用symfony拡張コマンドを充実させる予定もあるようですので、その点は加味してご覧ください。
プラグインのパッケージングは非常に簡単です。まずはプラグイン情報が書かれたpackage.xmlを作成します。これもコマンド1つで作成できます。今回はopFreepagePluginをバージョン0.9.0、ステータスをbeta、リリース文を"First release"とします。以下のようなコマンドになります。
-
./symfony opPlugin:define opFreepagePlugin 0.9.0 beta "First release"
以下のような出力がなされます。
-
[uechooc@localhost pneroot]$ ./symfony opPlugin:define opFreepagePlugin 0.9.0 beta "First release"
-
>> sfPearFrontendPlugin Attempting to discover channel "plugins.openpne.jp"...
-
>> sfPearFrontendPlugin downloading channel.xml ...
-
>> sfPearFrontendPlugin Starting to download channel.xml (598 bytes)
-
>> sfPearFrontendPlugin .
-
>> sfPearFrontendPlugin ...done: 598 bytes
-
>> sfPearFrontendPlugin Auto-discovered channel "plugins.openpne.jp", alias
-
>> sfPearFrontendPlugin "plugins.openpne.jp", adding to registry
-
>> sfPearFrontendPlugin Attempting to discover channel "pear.symfony-project.com"...
-
>> sfPearFrontendPlugin downloading channel.xml ...
-
>> sfPearFrontendPlugin Starting to download channel.xml (663 bytes)
-
>> sfPearFrontendPlugin ...done: 663 bytes
-
>> sfPearFrontendPlugin Auto-discovered channel "pear.symfony-project.com", alias
-
>> sfPearFrontendPlugin "symfony", adding to registry
-
>> sfPearFrontendPlugin Attempting to discover channel
-
>> sfPearFrontendPlugin "plugins.symfony-project.org"...
-
>> sfPearFrontendPlugin downloading channel.xml ...
-
>> sfPearFrontendPlugin Starting to download channel.xml (639 bytes)
-
>> sfPearFrontendPlugin ...done: 639 bytes
-
>> sfPearFrontendPlugin Auto-discovered channel "plugins.symfony-project.org", alias
-
>> sfPearFrontendPlugin "symfony-plugins", adding to registry
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/mobile_frontend/modules/freepage/actions/actions.class.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/mobile_frontend/modules/freepage/templates/indexSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/actions/actions.class.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/editSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/indexSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/listSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/newSuccess.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/_form.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_backend/modules/opFreepagePlugin/templates/_submenu.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_frontend/modules/freepage/actions/actions.class.php
-
>> sfPearFrontendPlugin Analyzing
-
>> sfPearFrontendPlugin apps/pc_frontend/modules/freepage/templates/indexSuccess.php
-
>> sfPearFrontendPlugin Analyzing config/config.php
-
>> sfPearFrontendPlugin Analyzing lib/opFreepagePluginRouting.class.php
-
>> sfPearFrontendPlugin Analyzing lib/filter/FreepageFormFilter.class.php
-
>> sfPearFrontendPlugin Analyzing lib/filter/base/BaseFreepageFormFilter.class.php
-
>> sfPearFrontendPlugin Analyzing lib/form/FreepageForm.class.php
-
>> sfPearFrontendPlugin Analyzing lib/form/base/BaseFreepageForm.class.php
-
>> sfPearFrontendPlugin Analyzing lib/model/Freepage.php
-
>> sfPearFrontendPlugin Analyzing lib/model/FreepagePeer.php
-
>> sfPearFrontendPlugin Analyzing lib/model/map/FreepageMapBuilder.php
-
>> sfPearFrontendPlugin Analyzing lib/model/om/BaseFreepage.php
-
>> sfPearFrontendPlugin Analyzing lib/model/om/BaseFreepagePeer.php
いろいろなファイルを解析していますが、これらはパッケージ内に含まれるファイル一覧を作成し、それぞれのファイルのチェックサムを取得している処理です。package.xmlには様々な設定項目があるのですが、コマンドラインで指定できる項目以外は固定で挿入されてしまいます。例えば、ライセンスはApache Licenseで固定されています。
パッケージ情報が生成できたので、アーカイブを作成します。これもコマンド一発です。以下のコマンドはopFreepagePluginのアーカイブををカレントディレクトリに作成します。
-
./symfony opPlugin:archive opFreepagePlugin ./
このコマンドを実行後、カレントディレクトリにはopFreepagePlugin-0.9.0.tgzというファイルが作成されています。バージョン名が付加されたtgzファイルですね。あとはこのファイルを公開すれば完成です。PEARのチャンネルサーバがあればコマンドラインからのインストールにも対応できると思うのでいいですね。plugins.openpne.jpなんかが一般開放されるとうれしいのですが。
以上でこの連載シリーズは終了です。OpnePNE3のプラグインが増えるといいですね!技術的な知識がある運営者ならばプラグインで独自の機能を作って自分のSNSを盛り上げることも可能でしょう。OpenSocialとsymfonyプラグインの双方で拡張できるOpenPNE3の可能性は無限大です!
No Responses to “[OpenPNE3]管理画面付きプラグイン(opFreepagePlugin)#6 プラグインのパッケージング”
コメントはまだありません。
Comments RSS
TrackBack Identifier URI
コメントをどうぞ
