Home > Tags > phing
phing
EclipseからPhingを使う
- 2009-06-30 (火)
- 技術・開発ツール
phingのタスクををantとしてラッピングしてみた。なんでそんなことをする必要があるのかと言えば、Eclipse(PDT / Zend Studio for Eclipse)からphingを使うためである。そしてなぜphingを使いたいかというと、Zend Frameworkを使用したプロジェクトの環境変数(production環境 or development環境)という情報を.htaccessやiniファイルにハードコーディングするのに違和感があるからである。こういう値はアプリケーション本体の上に位置するレイヤーで設定・コントロールするべきものだ。
phingをEclipseから使うためには外部ツールとしての登録などいくつか方法があるとは思うが、せっかく親戚のantが標準で入っているのだからそれを使わせていただく。phingのタスクをantのタスクでラッピングしてEclipse側からはantとして実行するわけである。ラッピングしているだけなので、Eclipseを使わずにコマンドラインから直接phingを実行することもできる。
事前準備:
- phingをインストールする。(詳細は省略。)
- Zend Studio for Eclipse(6.1系 or 7.0.0beta)を使用している場合、デフォルトではなぜかantがオフになっているのでちょっとした設定が必要。(PDTの場合は不要。)
設定方法:
1. メニューからNew(新規作成) => Other…(その他)を選ぶ。

2. Show All Wizardsにチェックを入れてから、Java => Java Project from Existing Ant Bundleを選びNext。

3. するとダイアログボックスが「Ant Developmentを有効にするか?」と聞いてくるのでOKを押す。新規作成そのものはキャンセル。これでAntが使えるようになる。
処理対象ファイル
application.php.distというファイルに環境関連の設定記述があるものとする。このファイルに対してphingで処理を行う。
application.php.dist
<?php
$paths = array(
get_include_path(),
'../library'
);
set_include_path(implode(PATH_SEPARATOR, $paths));
defined('APPLICATION_PATH')
or define('APPLICATION_PATH', realpath(dirname(__FILE__) . '/../application'));
defined('APPLICATION_ENV')
or define('APPLICATION_ENV', '@ENVIRONMENT@');
以下略
タスクの定義
1. phingの定義ファイルbuild.xml)を作成
build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="testphing" default="setappenv" >
<property name="basedir" value="../" />
<target name="setappenv">
<property file="ant.properties" />
<copy file="${basedir}/application/application.php.dist"
tofile="${basedir}/application/application.php" overwrite="true">
<filterchain>
<replacetokens begintoken="@" endtoken="@">
<token key="ENVIRONMENT" value="${environment}" />
</replacetokens>
</filterchain>
</copy>
</target>
</project>
2. プロパティファイルを設定
ant.properties
phing=/Path/to/phing environment=development
3. ラッパーであるantファイル(ant-build.xml)を作成
ant-build.xml
<?xml version="1.0" encoding="UTF-8"?>
<project name="phing-wrapper" default="setappenv">
<target name="setappenv" description="Set application environment from property file">
<property file="ant.properties" />
<exec dir="" executable="${phing}">
<arg line="setappenv" />
</exec>
</target>
</project>
4. ant-build.xmlをAnt Editorで開き、antビューかoutlineビューにてタスクを選択し、 Run as => Ant buildと実行。
phingを実行するとapplication.php.distの中の@ENVIRONMENT@の部分が”development”に置換され、新たにapplication.phpとして作成される。アプリケーションはpublic/index.phpなどでapplication.phpをインクルードして以後の処理を行うことになる。
まとめ
たかが一個の変数を設定するためにphingを使うのはいかにも大げさだが、タスクを追加設定していけばテンポラリディレクトリの掃除/データのリロード / ユニットテスト実行 / ドキュメント生成 / 配布用アーカイブ作成 といった定型作業を自動で実行できるようになるので正確で迅速なリリースの助けになるだろう。
参考サイト
Zend Framework 1.8: Building MVC Web Applications 。
How to enable the Ant plugin in Zend Studio for Eclipse – Blog of Max Horvath
PHPUnit3で始めるユニットテスト:第5回 PHPUnitの便利な機能とPhingとの連携|gihyo.jp … 技術評論社
- Comments: 0
- Trackbacks: 0
Home > Tags > phing
