Phingの履歴
PHP版ant。情報があんまりないなぁ…。Symfonyで使われてるみたいだけど。
http://phing.info/trac/
ユーザガイド
http://phing.info/docs/guide/current/
インストール
% pear channel-discover pear.phing.info % pear install phing/phing
Can't load default task list
Windowsでエラーがでる。phingはあんまりwindowsで動くようにはテストされてないみたいだ…。
このエラーの根本的な原因はphingのデータディレクトリのパスの解決に失敗してるから。
PEARでインストールすると $dataDir が自動的に置き換わるようになっている。はずなんだけど、何故かエラーが出る環境がある。
ソースPhing.phpの getResourcePathを直接書き換えるか、include_pathにpear/dataを追加するかしなければならない。
サンプル
例)temp,logディレクトリを作成して、777にする
build.xml
<?xml version="1.0"?> <project name="myproject" default="install" basedir="."> <target name="install"> <echo msg="Making directory" /> <mkdir dir="temp" /> <mkdir dir="log" /> <chmod file="temp" mode="0777" /> <chmod file="log" mode="0777" /> </target> </project>
build.xmlがあるディレクトリでコマンドを実行
% phing
buildfile
http://phing.info/docs/guide/current/chapters/GettingStarted...
<project name="FooBar" default="dist" basedir=".">...</project>
<target name="dist" depends="prepare">...</target>
タスク
CapsuleTask
テンプレートを使ってファイル生成する。例えば自分でscaffoldみたいなことが作れる。CapsuleというのはPhingが用意した素のPHPによるテンプレートエンジン。テンプレート内で<?php echo $var ?>とかやって変数出力する。素のPHPだからテンプレート内でコードも書けるので手軽。同じようなものにSmartyTaskがある。
指定しなければならないプロパティ
- templatePath
- controlTemplate(テンプレートファイル名)
- outputDirectory
- outputFile
- contextProperties(assignする変数をproperties形式で書かれたファイル名)
svn
この4つが使える。
SvnCheckoutTask
SvnUpdateTask
SvnLastRevisionTask
SvnExportTask
checkoutするならこう
<svncheckout svnPath="svn" // svnクライアントのパス toDir="library" repositoryUrl="http://server/repository/url" />
でも実行結果が出力されない。$this->runしてるとこを$this->logに渡せば出る。
無駄に調べたメモ
<phing phingfile="hoge/build.xml" inheritRefs="true" />