Posted at

phpプログラムの構文チェックをalias登録


はじめに

phpの構文チェック、phpcsなどを入れて本格的にチェックしたい場合もあるでしょうが、とりあえずローカルとかでもちょこっとだけやっておきたいときってありますよね。

そんなときの小ネタです。


単一phpファイルの構文チェック

実は単一のファイルに対するphpの構文チェックは php -l [ターゲットファイル] で実施できます。

# php -l example.php

No syntax errors detected in example.php


ディレクトリ全体の構文チェック1

では、特定のディレクトリの下を全部チェックしたい場合はfindと組み合わせれば再帰的にチェックしてくれます。

$ find ./ -name "*.php" | xargs -n1 php -l

No syntax errors detected in ./example1.php
No syntax errors detected in ./example2.php
No syntax errors detected in ./example3.php
No syntax errors detected in ./dir1/example1.php
No syntax errors detected in ./dir1/example2.php
No syntax errors detected in ./dir1/example3.php
No syntax errors detected in ./dir2/example1.php
No syntax errors detected in ./dir2/example2.php
PHP Parse error: syntax error, unexpected '{' in ./dir2/example3.php on line 14
Errors parsing ./dir2/example3.php
xargs: php: exited with status 255; aborting

途中でどこかエラーがあったら止まりますが、少し出力内容が多いので邪魔ですね。


ディレクトリ全体の構文チェック2

成功した行を捨ててしまいましょう。

$ find ./ -name "*.php" | xargs -n1 php -l > /dev/null

PHP Parse error: syntax error, unexpected '{' in ./dir2/example3.php on line 14
Errors parsing ./dir2/example3.php
xargs: php: exited with status 255; aborting


aliasに登録しておこう

ついでにこれを.bashrcなどにalias登録しておきましょう。


.bashrc

~中略~

alias phplint='find ./ -name "*.php" | xargs -n1 php -l > /dev/null'

$ phplint

PHP Parse error: syntax error, unexpected '{' in ./dir2/example3.php on line 14
Errors parsing ./dir2/example3.php
xargs: php: exited with status 255; aborting

便利ですね。

もちろん、同様のaliasを登録しておけばphp以外でも各種言語で簡単に手元でのチェックができるようになります。