なぜ、あなたのチームのプルリクエストは「不必要な指摘」で溢れてしまうのか?
「インデントがタブになっています」「ここの波括弧(`{`)は改行してください」「未使用の `use` ステートメントが残っています」……。
チーム開発でプルリクエスト(PR)を出したとき、本質的なロジックのレビューではなく、このようなコードスタイルの微細な違いに対する指摘でコメント欄が埋め尽くされた経験はありませんか?
レビュアーもレビュイーも、無駄なPRの往復によって集中力を削がれ、本来時間をかけるべき「ビジネスロジックの妥当性」や「セキュリティ対策」の検証にエネルギーを使えていない――これは開発現場において巨大な損失です。
エンジニア個人の「書き方の癖」を人間がレビューで指摘するのは今日限りでやめましょう。
私たちが誇る最強のPHP統合開発環境PhpStormには、コードスタイルを寸分の狂いもなく自動整形する強力なフォーマットエンジンが備わっています。
この記事では、`EditorConfig` を活用した標準化から、PhpStorm内部の高度なコードスタイル設定の共有、そして「保存した瞬間にコードが極上に整う」自動化の構築までを、先輩エンジニアがわかりやすく丁寧にガイドします。これをマスターすれば、毎日のコーディングとコードレビューが劇的に楽になりますよ!
—
1. コードスタイル統一の2大柱:EditorConfig と PhpStorm Code Style
チームでスタイルを統一するには、2つのアプローチを組み合わせるのがベストプラクティスです。
[全体方針] IDEを選ばない汎用ルール (.editorconfig)
└── [詳細方針] PhpStorm専用の高度なPHP整形ルール (Project Code Style Scheme)
└── [実行機構] 保存時・コミット時の自動フォーマット (Actions on Save)
1. `EditorConfig` (.editorconfig)
- 役割: IDEやテキストエディタの種類を問わず、プロジェクト共通の「最低限のインデント幅」「文字コード」「改行コード」などを規定します。
- メリット: VS CodeやVimを使うメンバーが混在していても、ベースラインが揃います。
2. `PhpStorm Code Style` (XML/JSON)
- 役割: PHP特有の超詳細なスタイル(配列の最後のカンマ、`use`文のソート順、`match`式のインデント、`strict_types`の配置など)を厳格に規定します。
- メリット: PhpStormの強力な静的解析と連携し、思考を止めることなくワンキーで完璧なコードへ自動変換します。
PhpStormはデフォルトで `.editorconfig` を優先して読み込む賢い設計になっています。まずはベースとなる `.editorconfig` の作成から始めてみましょう。
—
2. 実践:プロジェクト直下に `.editorconfig` を配置する
プロジェクトのルートディレクトリに `.editorconfig` というファイルを作成します。PHP(特にModern PHP / PSR-12 / PER Coding Style 2.0)開発において、最も標準的かつ効果的な設定例を用意しました。
`.editorconfig` の設定コード
http://editorconfig.org
最上位のEditorConfigファイルであることを宣言(これより上の階層を探しに行かない)
root = true
すべてのファイルに対するデフォルト設定
[]
文字コードはUTF-8で統一
charset = utf-8
改行コードはLF(Linux/macOS標準)に統一(Windows環境でのCRLF混入を防止)
end_of_line = lf
ファイル末尾に必ず改行を1行挿入する
insert_final_newline = true
行末の無駄な半角スペースやタブを保存時に自動削除する
trim_trailing_whitespace = true
PHPファイル専用の設定(PSR-12 / PER CS 2.0 に準拠)
[.php]
インデントの種類はスペース(タブ不可)
indent_style = space
インデント幅は半角スペース4個
indent_size = 4
YAMLファイルなどの設定(ツールや設定ファイル用)
[.{yml,yaml}]
indent_style = space
indent_size = 2
JSONファイルの設定
[.json]
indent_style = space
indent_size = 2
PhpStormでの動作確認(Hello World的ステップ)
`.editorconfig` を置くだけで、PhpStormは瞬時にこれを認識します。実際に試してみましょう!
動作確認用の「崩れたコード」を作成する
プロジェクト内に `StyleTest.php` というファイルを作成し、あえてインデントや改行がぐちゃぐちゃなコードを貼り付けてみてください。
フォーマットを実行する
macOSなら `Option + Command + L`、Windows/Linuxなら `Ctrl + Alt + L` を押してみましょう。
【フォーマット後の結果】
3. PhpStorm固有の高度な設定をチームで共有する(Schemeのエクスポート)
`.editorconfig` だけではカバーしきれない「PHP特有の細かい美学」は、PhpStormの Code Style Scheme 機能を使ってXML形式で共有します。
設定の調整手順
1. 設定画面を開きます。
- macOS: `PhpStorm` -> `Settings…` (または `Cmd + ,`)
- Windows/Linux: `File` -> `Settings…` (または `Ctrl + Alt + S`)
2. 左メニューから `Editor` -> `Code Style` -> `PHP` を選択します。
3. 上部にある `Set from…`(〜から設定)をクリックし、`Predefined Style` -> `PSR-12` や `PER CS` を選択します。これで業界標準のベースラインがセットされます。
さらに、チームでこだわりたいポイント(例:`declare(strict_types=1);` を自動で入れる、配列の最後に必ずカンマを付ける等)を調整します。
設定をプロジェクト(Git)に保存する
画面上部の Scheme(スキーム)ドロップダウンに注目してください。
Scheme: [ Default (IDE) ▼ ]
これを `Project` に変更します。
Scheme: [ Project ▼ ]
ここが最大のポイントです!
Schemeを `Project` に切り替えると、PhpStormはプロジェクトのルート内にある `.idea/codeStyles/Project.xml` というファイルにすべてのフォーマット規則を書き出します。
この `.idea/codeStyles/` ディレクトリをGitのリポジトリにコミットしてPushするだけで、チームメンバーがこのプロジェクトをPhpStormで開いた瞬間、まったく同じフォーマットルールが自動的に適用されます。 個別のインポート/エクスポート作業すら不要になるのです!
実際に生成される XML (`.idea/codeStyles/Project.xml`) の例
—
4. 究極の自動化:「保存した瞬間に勝手に整う」環境を作る
フォーマットのショートカットキー(`Cmd + Option + L`)すら、人間は押し忘れることがあります。
「保存(`Cmd + S` / `Ctrl + S`)したら、勝手にコードが最高に綺麗な状態になる」設定を有効化しましょう。
Actions on Save(保存時アクション)のセットアップ
1. 設定画面から `Tools` -> `Actions on Save` を開きます。
2. 以下の項目にチェックを入れます。
- [x] Reformat code (コードの再フォーマット)
- `Changed lines`(変更した行のみ)ではなく、初心者・小規模プロジェクトでは `Whole file`(ファイル全体)にしておくのが確実です。
- [x] Optimize imports (インポートの最適化)
- 使われていない `use` ステートメントを自動削除し、アルファベット順に並び替えます。
これで、あなたがコードを書いて `Cmd + S`(またはフォーカスを外す)だけで、PhpStormが裏側で一瞬にしてコードを美しく整えてくれます。タイピング時の「スペースを揃える作業」はもう過去のものです。
—
5. チーム導入時のQ&A:よくある壁の乗り越え方
Q1. 既存のレガシーコードに適用したら、大量のDiff(変更差分)が出ちゃいませんか?
A. 「変更したファイルだけ」または「Gitフック」を活用しましょう。
いきなりプロジェクト全ファイルにフォーマットをかけると、`git blame`(誰がいつ書いたか)の履歴が消えてしまいます。
新規開発機能のファイルから段階的に適用するか、`Actions on Save` で `Changed lines`(変更した行のみフォーマット)を選択するのが安全です。
Q2. メンバーにVS Codeユーザーがいます。諦めるしかないですか?
A. `.editorconfig` と CI (GitHub Actions) を組み合わせれば大丈夫です!
基本ルールは `.editorconfig` で共有し、最終防衛線として GitHub Actions などのCI上で `PHP_CodeSniffer` や `PHP-CS-Fixer` を走らせます。
「PhpStormを使っている人はローカルで完璧に自動修正され、VS Codeの人はCIでチェックされる」という体制を作れば、誰も困りません。
—
まとめ:仕組みで解決し、開発の「楽しさ」に没頭しよう
コードスタイルを巡る議論やPRの修正やり取りは、エンジニアのクリエイティビティを何一つ生み出しません。
1. `.editorconfig` で基礎となるインデントや改行コードを統一する
2. PhpStormの Code Style を `Project`(`.idea/`)に保存してGit管理する
3. `Actions on Save` で保存時に自動整形させる
この3つの仕組みを導入するだけで、チームのPRからくだらないスタイル指摘が消え去り、コードレビューの質が格段に向上します。
「ツールの力で自動化できることは、すべてツールに任せる」。
これこそがプロのDevOpsであり、快適な開発体験への第一歩です。ぜひ今日、あなたのプロジェクトでも設定してみてくださいね!