WEBアプリケーション研究室 開発ノート TOP

WEBアプリケーション研究室 開発ノート [symfony] pluginのpackage.xmlを自動で生成するtask

スポンサーサイト

-------- --:--

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

    このエントリーをはてなブックマークに追加

このプラグインは本家にアップしました。名前もgmPackageXmlBuilderPluginに変更しました。
今後こちらはアップしません。
新しいほうをご利用ください。

GmPackageBuilderPlugin


pluginのpackage.xmlを自動で生成するtaskを作ってplugin化してみました。
ためしにUPしてみますので使用してみてください。

インストール方法は以下の3つの方法があります。
1.symfony plugin-install でURLかアップしたアーカイブを指定。

symfony plugin-install /path/to/GmPackageBuilderPlugin-1.0.3.tgz
あるいは
symfony plugin-install http://symfony.gomo.jp/plugins/GmPackageBuilderPlugin/GmPackageBuilderPlugin-1.0.3.tgz

2.ここからダウンロードして、pluginフォルダに入れる。
3.GmPackageBuilderPlugin/lib/task/gomoBuildpackagexmlTask.class.phpをtaskフォルダにアップ。

PEARのPEAR_PackageFileManager2を使用します。PackageFileManagerに含まれていますので、入ってなかったらインストールしてください。

pear install PEAR_PackageFileManager

pearコマンドを使えない環境のときはPEARをFTPなどで上げて設定ファイルでパスを指定してやれば使えると思います。

まず、helpを見てください

symfony help gomo:build-package-xml

versionやstabilityやnotesなどをオプションで指定し最後にplugin名を指定します。
-oオプションはファイルを出力するか、画面に表示するかのオプション名でdefaultは画面出力のみです。ファイルを出力するときは
-o f
を指定してください。

symfony gomo:build-package-xml -o f -A 1.0.0 -R 1.0.0 -a stable -r stable MyPlugin

インストールされたフォルダplugins/GmPackageBuilderPlugin/config/にサンプルの設定ファイルがあります。
グローバルセッティングはsymfony_root/config/にコピーします。
※設定ファイルの名前を変更しました。(1.0.2)

cp GmPackageBuilderPlugin/config/gm_plugin_package_builder.yml.sample symfony_root/config/gm_plugin_package_builder.yml

pluginごとのローカルセッティングは各pluginのconfig/builder.ymlにコピーしてください。
設定どっちにも書けますが、プラグインごとの方が優先されます。
内容は大体見ればわかると思いますが、ざっとこんな感じです。

builder:
make_backup: on
バックアップを作るか?
pear_path: /usr/local/php/lib/php
PEARのパス

config:
symfony:
channel: pear.symfony-project.com
min: 1.1.0
max: 1.1.6
exclude: ~
依存するsymfonyのバージョン

name: Name
user: User name
email: user@example.com

license: MIT License
license_uri: ~
ライセンス

php: {min: 5.1.0}
pearinstaller: {min: 1.4.1}

summary: ****summry****
description: ****description****

dependencies://依存するパッケージ
-
type: require
name: PEAR_PackageFileManager
channel: pear.php.net
min: 1.6.3
max: ~
recommended: ~
exclude: ~
providesextension: ~
nodefault: ~
-
type: require
name: TEST_OPTION
channel: pear.php.net
min: 1.0.0
max: 1.0.5
recommended: ~
exclude: ~
providesextension: ~
nodefault: ~
-
type: optional
name: URL_TEST
uri: http://www.yahoo.co.jp/
providesextension: ~
nodefault: ~

pear_options:
PEAR_PackageFileManager2::setOptions()の引数にarray_mergeされます。


あんまり必要ないかもしれませんがコンソールのオプションも指定できます。
configファイルにオプションを書いても、コンソールでオプションを付けた場合はコンソール側が優先されます。
console:
api-stability: stable
release-stability: stable
api-version: 1.0.0
release-version: 1.0.0
notes: ------

迷ったのですがPEARコマンドが使えないことを想定してPEAR_PackageFileManagerをdependenciesに指定しませんでした。
何か不具合、要望、ご意見などいただけたらうれしいです。
MITライセンスです。

Change Log
1.0.3 'が'に変換されたままになっていたので修正
1.0.2 configファイルのファイル名を変更。PEARの問題だと思いますが、PEAR_PackageFileManager_fileをrequireしなくなってエラーが出ていた。
1.0.1ディレクトリの区切り文字を'/'→DIRECTORY_SEPARATORに変更

[symfony 1.1.6]
スポンサーサイト

    このエントリーをはてなブックマークに追加
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。