QAが物事を調べて、「すべてのページに巨大なテキストブロックがあります!!」のようなバグを報告しないように、デバッグ機能var_dump, print_r, etc...
がレポにコミットされないようにしたいと思います。
私は正規表現を試しました(良い考えではありません...おそらく)。
私も試してみtoken_get_all
ましたが、何らかの理由でT_STRING
、デバッグ機能ごとに返されるので、うまくいくと思いますが、奇妙に思えます...
3番目のより良い方法はありますか?
QAが物事を調べて、「すべてのページに巨大なテキストブロックがあります!!」のようなバグを報告しないように、デバッグ機能var_dump, print_r, etc...
がレポにコミットされないようにしたいと思います。
私は正規表現を試しました(良い考えではありません...おそらく)。
私も試してみtoken_get_all
ましたが、何らかの理由でT_STRING
、デバッグ機能ごとに返されるので、うまくいくと思いますが、奇妙に思えます...
3番目のより良い方法はありますか?
探している答えではないかもしれませんが、コードからすべてのprint_r、var_dumpなどを削除することを強くお勧めします。
したがって、これらのタグを削除し、ローカルマシン上であっても、コード内に保持しないでください。
私の新しい理解に基づいて、これは私が持っているものです:
$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;
}
}
}
}
sniff PHP_CodeSnifferを作成し、SVN にそれを pre-commit フックとして実行させることができます。これにより、そのようなコードのコミットが拒否されます。