PHing

使って試してはいないけど、ドキュメント調査だけ。

  • phpunitタスクがない。まぁ自分でタスクを作ればいいのかもしれないけど。
  • 以下にあるようにテキストファイルに対する操作の機能が豊富。

Appendix B: Core Tasksより

  • AdhocTaskdefTask: build.xml内でPHPコードを書いてタスクを定義できる。
  • AdhocTypedefTask: データ型を定義できる。
  • AppendTask: ファイルにテキストを追記する。
  • AvailableTask: ファイルやディレクトリが存在するか調べる。
  • CallTargetTask: 同じプロジェクト内のタスクを呼び出す。
  • CopyTask: ファイルやディレクトリのコピー
  • DeleteTask: ファイル削除
  • EchoTask: 文字列の出力
  • ExecTask: コマンドの実行
  • ExitTask: エラー時に終了する。
  • ForeachTask: 繰り返し実行
  • InputTask: ユーザに入力を求める。
  • MkdirTask: ディレクトリ作成
  • MoveTask: ファイル移動
  • PhingTask: 別のビルドファイルを呼び出す。
  • PearPackageTask: PEARのpackage.xmlを作成する。
  • PhpEvalTask: PHPコードの実行。
  • PropertyTask: プロパティ変数に値をセットする。
  • ReflexiveTask: ファイルを変更する。正規表現を使った置換やXSLTなど。
  • ResolvePathTask: 相対パス絶対パスにする。
  • TarTask: tarballを作成する。
  • TaskdefTask: ユーザ定義のタスクを導入する。
  • TouchTask: ファイルのタイムスタンプの更新
  • TypedefTask: ユーザ定義のデータ型を導入する。
  • UpToDateTask: 二つのファイルのタイムスタンプを比較する。
  • XsltTask: XSLT変換を実行する。

Appendix C: Core Types より

  • FileList: ファイルのリスト
  • FileSet: ワイルドカードを使ったファイルのリスト
  • Path / Classpath: path を通すディレクトリの指定
  • Core Filters: いろいろなフィルターを定義する(具体例は後述)。フィルターというだけあり、複数のフィルターを組み合わせることも可能。
    • PhingFilterReader: 標準でないフィルターを呼び出す。自分でPHPで作成したものなど。
    • ExpandProperties: プロパティをその値に変換するフィルター。${property}などと書いておくと変換される。
    • HeadFilter: ファイルの先頭を抽出するフィルター。
    • Line Contains: ある文字列を含む行だけを抜き出すフィルター。
    • LineContainsRegexp: 正規表現にマッチする行だけを抽出する。
    • PrefixLines: 各行の先頭に文字列を挿入する。
    • ReplaceTokens: 文字列の置換
    • ReplaceRegexp: 正規表現を使った文字列の置換
    • StripLineBreaks: 改行の削除
    • StripLineComments: コメント行を削除
    • StripPhpComments: PHPのコメントを削除
    • TabToSpaces: タブを空白にする。
    • TailFilter: ファイルの末尾を抽出。
    • XsltFilter: XSLT
  • Core Mappers: マッパーというのはファイル名を指定するのに使用する。
    • FlattenMapper: ファイル名からディレクトリ部分を除去する。色々な階層にあるファイルを同じ一階層のディレクトリにフラットにコピーするような時に使える。
    • GlobMapper: ワイルドカードの指定
    • IdentityMapper: 何も変更しないマッパー
    • MergeMapper: すべてのファイル名を同一にする。ファイルを一つにマージするときに使うみたい。
    • RegexpMapper: 正規表現を使ってファイル名を変換する。