Our particular build strategy is as follows:
* build depends upon clean, lint
* build assembles files for web-visibility
* build calls smoketest
* build is called after each update
So, a developer makes a change, runs "phing build", which does a clean, a lint, then builds the files in the right web directory, and finally runs some smoke tests. The source code often contains third party libraries that we usually don't touch. Sometimes these libraries have hundreds of files.
Linting all of these third-party source files each and every time seriously hurts our cycle time: sometimes 20-30 seconds are added. It would be very nice for the PHPLintTask to remember which files it's already linted and only lint those that have been modified. Even build cycles that aren't as frequent as ours could benefit from caching (why work if you don't have to).
I suppose the cache directory should be a part of the lint element. Like this:
<phplint haltonfailure="true" cachefile="/tmp/phplintcache">
...
</phplint>
When cachefile is absent, phplint behaves as it does currently. When present, phplint checks to see if the file has been modified since last cache and lints if so, then stores file name and modification time into cache file after a successful lint.
If this is a reasonable approach, and an approved ticket, we can implement. Just give us the green light.