akkun_choi pedia
mindiaakkun_choi pedia見出し語

Phing

akkun_choi · 2009-11-02 更新

PHPant情報があんまりないなぁ…。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.html#XMLAndPhing

<project name="FooBar" default="dist" basedir=".">...</project>
<target name="dist" depends="prepare">...</target>

タスク

CapsuleTask

テンプレートを使ってファイル生成する。例えば自分でscaffoldみたいなことが作れる。CapsuleというのはPhingが用意した素のPHPによるテンプレートエンジン。テンプレート内で<?php echo $var ?>とかやって変数出力する。素のPHPだからテンプレート内でコードも書けるので手軽。同じようなものにSmartyTaskがある。

指定しなければならないプロパティ

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" />

関連する見出し語