質問: php codesnifferの特定のコーディング標準エラーを無視する方法 php 5 webアプリケーションがあり、現在、 php codesniffer を評価しています。これは、コード標準を強制することで頭痛をあまり起こさずにコードの品質が向上するかどうかを判断するためです。良いと思われる場合は、svn pre-commitフックを追加して、devブランチでコミットされたすべての新しいファイルにコーディング標準の臭いがないようにします。特定のタイプのエラーを無視するようにphp codesnifferを構成する方法はありますか?または代わりに特定のエラーを警告として扱うようにしますか?ここに問題を実証する例:<!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> </head> <body> <div> <?php echo gettabcontent('programming', 1, $numx, $numy); if (isset($msg)) { echo $msg; } ?> </div> </body> </html> そして、これはphp_codesnifferの出力です: > phpcs test.php ------------------------------ -------------------------------------------------- 2行のエラーと1行の警告が3行に影響しています ---------------------- -------------------------------------------------- -------- 1 |警告|行が85文字を超えています。 121文字が含まれています 9 |エラー|ファイルのドキュメントコメントがありません 11 |エラー|行のインデントが正しくありません。 0個のスペースが予想され、4 が見つかりました------------------------------------------- ----------------------------------------- 「行のインデントが正しくない」エラーの問題があります。 phpインデントとhtmlインデントを混ぜているために起こると思います。しかし、これにより読みやすくなりますか? (現時点でmvcフレームワークに移行するためのリソースがないことを考慮して)。だから私はそれを無視してください。
回答: htmlにphpコードを混ぜてphpcsを実行すると、多くの問題が発生します。 phpcsは、純粋なphpスクリプトを解析する場合にのみ本当に役立ちます。組み込みのコーディング標準は、php/htmlの混合ではなく、純粋なphpを中心に構築されています。1つのオプションは、独自のカスタム標準を作成し、代わりにそれを使用することです。カスタム標準では、コードの混合を考慮に入れますが、おそらく書くのは面倒です。フレームワークに移行したくないと言ったので、もう1つのオプションはテンプレートシステムを使用することです。 smarty と twig は両方ともmvcフレームワークの外部で使用できます。それらのいずれかに移動し、phpcsでテンプレートファイルではなく.phpファイルのみを解析します。