更有效地验证PHP文件的语法

Dan*_*ley 6 php syntax continuous-integration

验证一堆PHP文件的语法是SLOW

我们php -l file.php用来验证许多php文件的语法,作为持续集成设置的一部分.我们实际上做了类似的事情:`find.-name"*.php"| xargs --max-args = 1 php -l"因为php可执行文件只接受一个参数.

这是非常缓慢的,主要是因为它涉及为每个PHP文件启动一个全新的解析器/解释器(更不用说进程),以验证它的语法,我们有成千上万.

有更快的方法吗?

Cod*_*key 2

在搜索中添加时间怎么样,例如

`find . -mtime -7 -name "*.php" | xargs --max-args=1 php -l
Run Code Online (Sandbox Code Playgroud)

find 命令仅验证上周修改过的文件?

我假设您的大部分代码库不会每隔几天更改一次?

更新

您可能还想尝试 -newer 标志

`find . -newer /path/to/file -name "*.php" | xargs --max-args=1 php -l
Run Code Online (Sandbox Code Playgroud)

它会找到比给定文件更新的所有文件,非常方便,特别是如果您的版本控制在每次签出时更改某个系统文件,或者使用:

touch -t 201303121000 /path/to/file 
Run Code Online (Sandbox Code Playgroud)

创建一个虚拟文件以与 -newer 一起使用