8

QAが物事を調べて、「すべてのページに巨大なテキストブロックがあります!!」のようなバグを報告しないように、デバッグ機能var_dump, print_r, etc...がレポにコミットされないようにしたいと思います。

私は正規表現を試しました(良い考えではありません...おそらく)。

私も試してみtoken_get_allましたが、何らかの理由でT_STRING、デバッグ機能ごとに返されるので、うまくいくと思いますが、奇妙に思えます...

3番目のより良い方法はありますか?

4

4 に答える 4

0

探している答えではないかもしれませんが、コードからすべてのprint_r、var_dumpなどを削除することを強くお勧めします。

  1. コードを常にクリーンに保つ
  2. これらのタグはデバッグのみを目的としています。
  3. コミットするときは、すべてが期待どおりに機能することを確認する必要があります。コミットコードを変更したり、実際のマシンとは異なるコードをマシンに配置したりすると、バグや問題が確実に発生します。

したがって、これらのタグを削除し、ローカルマシン上であっても、コード内に保持しないでください。

于 2011-09-26T20:33:52.860 に答える
0

私の新しい理解に基づいて、これは私が持っているものです:

$debug_functions = array('print_r', 'var_dump', 'var_export');

foreach($files as $file=>$ext){
    $file_contents = file_get_contents($file);
    //break the content into tokens
    $tokens = token_get_all($file_contents);
    foreach($tokens as $t){
        //if the token id is an int (sometimes it isn't)
        if(is_int($t[0])){
            //if it matches our debug stuff...
            if($t[0] == T_STRING && (in_array($t[1], $debug_functions) || preg_match('/xdebug_.*?/', $t[1]))){
                echo 'Debug output '. $t[1] . ' found on line '. $t[2] . PHP_EOL;
            }
        }
    }
}
于 2011-09-26T13:27:11.047 に答える
0

sniff PHP_CodeSnifferを作成し、SVN にそれを pre-commit フックとして実行させることができます。これにより、そのようなコードのコミットが拒否されます。

于 2011-09-27T07:44:59.363 に答える
0

別の方法は、var_dump および関連する関数をまったく使用しないことです。コーディングのベター プラクティスには以下が含まれます

  1. PHPUnitと_
  2. Xdebugなどのリモート デバッガーの使用
于 2011-09-28T14:18:17.697 に答える