The Problem

The PHP CLI has a cool feature (-l) that allows you to check a file to see if it has any syntax errors:

scotts-air:~ scottkeckwarren$ php -l test.php 
Parse error: parse error, expecting `"function (T_FUNCTION)"' in test.php on line 5
Errors parsing test.php

The downside to this is that it doesn’t work on a whole directory. So unless you’re willing to add every new file to a script it’s not a quick way to check all your files before deployment.

The Solution

With some command line magic we can have it run on all the PHP files in our application:

find -L application -name '*.php' -print0 | xargs -0 -n 1 -P 4 php -l

I find it helpful to run my template files through this process as well:

find -L application -name '*.phtml' -print0 | xargs -0 -n 1 -P 4 php -l