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

laravel+vessel

現場のリーダー的な方に進められてVesselというDockerのインストールなどをサポートするツールを触ってみました。 特にlaravelのインストールなどに向いていますが、laravelでなくとも使 …

no image

cakePHPのSSL設定+jQueryのError Loading Page

cakeで作ったアプリの認証画面でhttps環境だとError Loading Pageというエラーメッセージがでてしまい、ログインできないという事象が発生。 最初はSSLが原因かとおもっていたんです …

no image

ECCUBE3ディレクトリ構成

ECCUBE3のディレクトリ構造に関して。 自分用 自分用メモです。 設定情報 /app/config/eccube 定数 /src/Eccube/Common/Constant ログ /app/lo …

no image

CakePHPのcomponent

CakePHPのComponentについて。 CakePHPでは各コントローラに共通の処理をComponentとしてモジュール化することができます。 わかりやすいところでいえば認証のAuth,Sess …

no image

PCクラッシュ時に備えて

先日、ずっとメインで使っていた会社のノートPCがクラッシュし、再起不能になりました。ファイルなんかはクラウドで管理していたものが多かったので実害はあまりなかったんですが、当然ゼロではありませんでした。 …