2011-12-28 10 views
2

私は大きなPHPプロジェクトを持っており、異なるプロジェクト開発者が同じプロジェクトで作業しています。たとえば、構文エラーのPHPファイルの変更は、別の開発者が同じプロジェクトを実行しようとすると500の内部サーバーエラーが発生する可能性があります。プロジェクト全体をチェックし、プロジェクト内のファイルごとに発生した行番号とエラーを表示するバッチファイルをダウンロードする必要があります。 PHP -lファイル名を使用している場合 - その代わり、私はそれがPHP -lプロジェクトになりたいファイルではなくプロジェクトレベルでphpで構文エラーをチェックしています

+0

'php -l project'は、実行時条件によって引き起こされるエラーを決して捕まえないので、あまり有用ではないでしょう。 –

答えて

4

編集:はOPをめくりは、エラー報告を有効にする方法を探しています。私はそれが類似の状況で多くの人にとって良い普遍的なアドバイスだと確信しているので、とにかくこのままにしておきます。

私はあなたの状況を知らないが、私には、それはあなたが本当に必要が任意のバージョンコントロールなしで同時に同じファイルで作業少なくともversion control system.複数の開発者を使用して、適切な展開プロセスであるかもしれないもののように聞こえます災害のためのレシピです、それは私があなたを保証できるほどです。

いくつかの出発点:非常にうまく行われ、バージョン管理が合うかもしれないprogrammers.SEの質問です。ここ

  • の仕組みを理解するのに役立ちます

  • +0

    私たちはすでにその場所にそれを持っています。私たちが最終的に必要とするのは、プロジェクト全体の構文エラーを確認することです。 – michelle

    +1

    @michelleエラー報告を有効にするにはどうしたらいいですか? 500エラーを表示する代わりにPHPエラーを画面に表示させることができます。それはあなたが探しているものですか? –

    +0

    はい私が探しているものを正確に – michelle

    5

    Linuxを使用している場合は、このコマンドはすべてのphpファイルに対して再帰的にあなたの現在のフォルダをチェックし、構文はそれらをチェックし、OKなものを除外します:

    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 
    } 
    
    関連する問題