Skip to content

PHPCS実行ガイド

  • プロジェクトでPHPCS(PHP CodeSniffer)によりコーディング規約をチェックする方法。
    • WordPress Coding Standards をベースに一部ルールを調整しています。
  • 実行コマンドは コマンド一覧 を参照してください。

環境セットアップ

  • 前提: PHP 8.3以上、Composer
  • インストール: プロジェクトルートで composer install を実行(PHPCS と WPCS が入ります)

設定の概要(config/phpcs.xml)

対象・除外

種別内容説明
対象 <file>connector.php, core_src, configチェック対象のファイル・ディレクトリ
除外 <exclude-pattern>*/vendor/*, */node_modules/*, */_build/*, */tests/*, *Test.php, *.js, *.css などマッチしたパスはチェック対象外

コマンドの役割分担(lint / lint-tests

コマンド対象用途
composer lintconnector.php, core_src, config本番相当パスの PHPCS(config/phpcs.xml)。CI Quality Gate の本線ステップ
composer lint-teststests/ のみテストコードの PHPCS(config/phpcs-tests.xml)。本線と分離し CI OOM を回避。CI では別ステップで実行

本線の config/phpcs.xml*/tests/* を除外するため、同じ ruleset で tests を渡しても 0 ファイルになります。lint-tests は専用 ruleset(Doc/ファイル名・WP ランタイム系ルールを緩和)を使います。

config/phpcs-tests.xml は初回取り込み用に ignore_warnings_on_exit=1(警告のみでは exit 0)です。警告件数は定期的に composer lint-tests の出力で確認し、ノイズが落ち着いたら当該 config を外すことを検討してください。ローカル一括(composer quality / composer quality-check)にも lint-tests を含めています。

ルール構成

ルール説明
WordPress(ベース)<rule ref="WordPress"> を採用し、以下を除外して調整
→ ファイル名WordPress.Files.FileName を除外(ファイル名の厳格な制約を緩和)
→ ドキュメントVariableComment.Missing のみ除外(プロパティは段階的改善)。FileComment・ClassComment・FunctionComment.Missing は適用。
→ 配列・構文短縮配列・三項演算子・配列スペース等の WordPress 側ルールを除外(後述の追加ルールで統一)
→ 変数名ValidVariableName(スネーク_case)を除外し、camelCase を許可
→ セキュリティValidatedSanitizedInput の Unslash/InputNotSanitized を除外(開発環境用に一部緩和)
→ コメント句読点インライン・Param・Throws・DocComment の「ピリオド必須」を除外(日本語コメント向け)
Slevomat UnusedUses未使用の use 文を検出(searchAnnotations: true)
Generic DisallowLongArraySyntaxarray() を禁止し [] を強制
Generic ForbiddenFunctionseval, exec, passthru, shell_exec, system を禁止。curl_exec は wp_remote_request を推奨
WordPress.DB.PreparedSQLSQL のプリペアをチェック(NotPrepared の誤検知は除外)

実行オプション・その他

設定説明
severity1重要度1以上を報告
tab-width4タブ幅(表示用)
cache.phpcs-cacheキャッシュディレクトリ
parallel1並列数
colors有効出力を色付きに
extensionsphpPHP のみチェック
memory_limit (ini)512MPHP のメモリ上限

詳細は config/phpcs.xml を参照してください。


最終更新: 2026-02-20