在项目级别而不是文件级别检查 php 中的语法错误

问题描述 投票:0回答:3

我有一个大型 php 项目,不同的开发人员在同一个项目上工作。如果另一个开发人员尝试运行相同的项目,则 php 文件中的更改(例如语法错误)可能会导致 500 内部服务器错误 - 让其他开发人员不知道错误来自何处。我需要下载一些批处理文件来检查整个项目并显示项目中每个文件发生的行号和错误,而不仅仅是在一个文件中,例如当使用 php -l 文件名时 - 相反,我希望它是 php -l 项目

php debugging
3个回答
9
投票

如果您使用的是 Linux,此命令将递归检查当前文件夹中的所有 php 文件,对它们进行语法检查并过滤掉正常的:

find . -name \*.php -exec php -l {} \; | grep -v "No syntax errors"

您将获得一份不错的文件和错误列表。


4
投票

编辑:原来OP正在寻找一种激活错误报告的方法。无论如何,我都会保留这一点,因为我确信这对于许多处于类似情况的人来说是一个很好的通用建议。

我不知道你的情况,但对我来说,听起来你可能真正需要的是至少使用一个版本控制系统的正确部署过程。多个开发人员同时处理相同的文件,没有任何版本控制这是灾难的根源,我可以向你保证这一点。

一些出发点:


3
投票
$it = new RecursiveIteratorIterator( new RecursiveDirectoryIterator('.'));
$regx = new RegexIterator($it, '/^.*\.php$/i', // only matched text will be returned
    RecursiveRegexIterator::GET_MATCH);
foreach ($regx as $file) {
    $file = $file[0];
    exec('php -l ' . $file); //check the syntax here
}
© www.soinside.com 2019 - 2024. All rights reserved.