スタンドアロンのプロジェクトディレクトリ
PropelのPEARではないバージョンを使用する場合(通常のzip/tarballリリースもしくはSVNバージョン)、PEARバージョンのユニークな機能を見失っていることがあります - プロジェクトを望むディレクトリに設置できる機能です。通常、ビルドしたいプロジェクトは"generator/projects/"フォルダの内部に存在しなければなりません。Propel 1.2に関しては、Propelのディレクトリ構造の外側からプロジェクトを保存してビルドしなければなりません。
どのように動作するのか
PropelのPEARバージョンは"propel-gen"と呼ばれるスクリプトを搭載しています。環境の検索パス上(とPHPのinclude_path)にあるPEARフォルダ内部に設置されています。 スクリプトはPropelがどこにインストールされているのか - システムのPEARフォルダにあることを知っています。この方法では、"propel-gen yourproject"を呼び出すときはいつでも、Propelの"home"ロケーションを知っていてジョブを行います。PropelのSVNとダウンロード可能なリリースバージョンはこの恩恵を持ちません。どこにそれらをインストールするのであれ、それらをプロジェクトなど一緒に搭載することが出来ます。いくつかの二次的な恩恵がある一方で(例えば、あなのプロダクトとそれをバンドルすることでPropelの特定のバージョンを使うことを強制出来ます)、Generatorプロジェクトフォルダの外側からプロジェクトをビルドするために少し多くの努力が必要です。修正した"build.xml"ファイルを使用して"build.properties"ファイルでいくつかのプロパティを追加指定することで、動作させることが出来ます。
簡単な例!
最初にする必要があることは"build.xml-local"ファイル("propel-generator"ルートディレクトリ内部の設定)をプロジェクトディレクトリにコピーして"build.xml"にリネームします。終わった後、プロジェクトの"build.properties"ファイルを開き次のプロパティを追加します:
propel.home = /path/to/propel/generator/directory propel.schema.dir = . propel.conf.dir = . propel.output.dir = ./build
絶対と相対パスの両方を使うことが出来ます。上記の例では、、スキーマとコンフィグディレクトリは"."に設定されます(これを変更する必要はありません)。すべての出力はプロジェクトディレクトリの内部の"build"フォルダに書き込まれます。この出力の振る舞いを次のように微調整することが出来ます:
propel.output.dir = ../..
propel.php.dir = ${propel.output.dir}/webapp/lib
propel.phpconf.dir = ${propel.output.dir}/webapp/config
propel.sql.dir = ${propel.output.dir}/dev/sql
"propel.project"ディレクトリを指定することを忘れないで下さい(ともかくそれなしで済ませることはできません)。"propel.targetPackage"を設定することはしばし道理に合います。
動かしてみよう!
それでジョブをこなします。プロジェクトディレクトリに変更して"phing"を呼び出して下さい(または"phing -Dproject=yourproject"、もしくは、もちろん"phing <target>")
その他の助言
この方法を使う場合、PropelもしくはCreoleがPHPのinclude_pathにないことがよくあります。しかしながら、プロジェクトをビルドするために、PropelジェネレータはCreoleを必要とします。includeパスをいじくらない(もしくはできない)場合、簡単な解決方法があります: "creole"フォルダ("Creole.php"と他のファイルを含みます)を"propel-generato/classes/"ディレクトリにコピーします。
