2011-12-28 47 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 
}