skillup

技術ブログ

PHP プログラミング全般

phing

投稿日:2017年5月8日 更新日:

今までphpunit,phpmd,phpcodesniffer,phpdocumentなどのツールをいろいろと試してきますが、個別に動かしていると大変面倒ですので、これを一気に行えるライブラリがあります。

phing

https://www.phing.info/

JavaでいうAnt,mavenのようなビルドツールです。

xml形式でタスクを記述しておくと、上からタスクを順に読み込んで実行してくれます。

インストール

composerでインストールするのが一番簡単かと思います。

サンプル

phpunit,phpmd,phpcodesniffer,phpdocumentを一度に実行する場合です。

build.xml

解説(自分用メモ)

  • まず実行するprojectと実行するタスクを<project  name=”” default=”build”></project>で記述します。今回実行するタスクはbuildになります。
  • あるタスクが別のタスクを必要とするときdepends~で記述します。上記の例だとbuildはphpunit,phpmd,phpcodesniffer,phpdocumentというタスクに依存しています。要はこの4つのタスクを実行した後で実行されます。
  • 1つ1つのtaskは<target name~と記述します。記述したいことがあればdescriptionで記述します。
  • 実行したい中身を<phpdoc2などのタグで囲みます。個々のタグをどのように記述するかは冒頭で紹介したphingのリンクに書かれています。https://www.phing.info/docs/guide/stable/

なお、if文などの条件分岐も盛り込めるようです。

実行コマンド

最小なのは設定ファイルのみ定義して実行です。

./vendor/bin/phing -buildfile build.xml

他に特定タスクだけを実行したい場合は下記のようにできます。

./vendor/bin/phing -buildfile build.xml phpunit

参考リンク

Phing入門 ~基本的な使い方~

PHP 用の CI 設定のまとめ

[PHP]10分で静的解析による統一されたコーディング環境を整える(Phing / php-md / php-cs-fixer)

-PHP, プログラミング全般
-,

執筆者:


comment

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

関連記事

no image

ファイルポインタ関連の操作に関して

CSVの読み込みに関してファイルポインタ関連で色々と整理することがあったのでメモ。 Contents1 今回やりたかった処理2 ファイルポインタとは 今回やりたかった処理 CSVファイルを読み込み(文 …

no image

PHPのオートローディング

大規模開発では扱うファイルが増えるため、必要なクラスの読み込みが煩雑になるケースが多いです。 Contents1 従来のPHPのファイルのロード2 オートローディングとは3 サンプルソース4 メモ5 …

no image

webの仕組み その1 Webの基本的なイメージ

Webの仕組みについて基礎からちょっと勉強しようかと。自分用なのでまとまってません(爆) Contents1 Webの基本的なイメージ2 HTTPメソッド Webの基本的なイメージ ネットワーク上のリ …

no image

データのシリアライズ

おととしにJavaをやったときにでてきましたがSessionに情報を格納するときにでてきたシリアライズについて。 セッションはステートフルな状態を実現するための便利なデータの保存方法ですが、値をオブジ …

no image

PHPで配列の同一性(集合のチェック)

AとBという配列があり、A⊂B つまりは集合のような関係を確かめたいときに下記のようなメソッドを使います。