2011-12-28 20 views
2

我有一个大型的PHP项目和不同的开发人员在同一个项目上工作。如果另一个开发人员尝试运行同一项目,php文件中的变化例如语法错误可能导致500内部服务器错误 - 使其他开发人员无法确定错误来自何处。我需要下载一些批处理文件来检查整个项目,并显示项目中每个文件的行号和错误,而不仅仅是一个文件,例如使用PHP -l文件名的时候 - 而不是我想这是PHP -l项目PHP语言错误检查项目级别而不是文件

+0

'php -l project'永远不会捕获由运行时条件引起的任何错误,所以它可能不会很有用。 – 2011-12-28 11:22:14

回答

4

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

我不知道你的情况,但对我来说,这听起来像你可能真的需要什么是使用至少一个version control system.多个开发商同时对同一文件的工作没有任何版本控制适当的部署过程是灾难的秘诀,我可以向你保证。

一些出发点:

+0

我们已经有了。我们最终需要做的是能够检查整个项目的语法错误 – michelle 2011-12-28 10:59:02

+1

@michelle你是否希望激活错误报告呢?您可以在屏幕上显示PHP错误,而不是显示500错误。那是你在找什么? – 2011-12-28 11:00:35

+0

是的,这就是我正在寻找的 – michelle 2011-12-28 11:00:54

5

如果您使用的是Linux,这个命令会检查当前文件夹递归所有的PHP文件,语法检查并过滤掉正常的那些:

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

你会得到的文件列表不错和错误。

2
$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 
}