こんにちは。開発現場でチームの生産性向上に日々頭を悩ませているテックリードの皆さん。
「ちょっとした配列の挙動を確かめたい」
「正規表現のキャプチャグループが意図通りかテストしたい」
「外部APIのレスポンスJSONをパースする処理をサクッと書きたい」
こうした検証を行う際、あなたは何をしていますか? まさか、既存のプロジェクト内に `test.php` や `debug.php` という使い捨てファイルを作り、`.gitignore` にヒヤヒヤしながら追加したり、最悪の場合そのままコミットしてインシデントの火種を作ったりしていないでしょうか。あるいは、わざわざDockerコンテナを立ち上げて手動でREPLを叩くなど、思考のフローを断絶させる非効率な儀式に時間を溶かしていないでしょうか。
世界最高峰のIDEであるPhpStormには、この「ちょっとしたコードの検証」という開発者の本能的な欲求を、プロジェクトの純度を1ミリも汚さずに極限まで高速化する隠し武器が存在します。それが 『Scratch Files(スクラッチファイル)』 です。
今回は、マニュアルを読むだけでは絶対に気付けない、Scratch Filesを「思考を止めずにコードを書き捨てる最強の実験室」に仕立て上げるプロの実践テクニックを徹底解説します。
—
1. なぜ「プロジェクト内一時ファイル」は悪なのか?
開発者の脳内にある「アイデアの賞味期限」は驚くほど短いです。思いついた瞬間にコードを書き始め、数秒で結果を得る。このループが途切れると、集中力(フロー状態)が途切れ、本来のパフォーマンスが著しく低下します。
しかし、プロジェクトのルートディレクトリに検証ファイルを乱立させると、以下の深刻な問題が発生します。
- Git汚染のリスク: `.gitignore` の設定漏れによる検証コードの誤コミット。
- オートロードの混乱: ComposerのPSR-4オートローダーが意図しないファイルをスキャンし、IDEの補完や静的解析(PHPStanなど)にノイズが走る。
- コンテキストスイッチの発生: 「このファイル、後で消すんだっけ?」という余計な認知負荷が脳のリソースを消費する。
PhpStormのScratch Filesは、「どのプロジェクトからも独立した、グローバルな一時作業領域」です。ファイル実体はOSのユーザー領域(設定ディレクトリ等)に安全に隔離されるため、Gitの管理下から完全に切り離されながらも、PhpStormの強力な補完・リファクタリング・デバッグ機能の恩恵を100%受けることができます。
—
2. 思考を止めない!Scratch Filesの神速ワークフロー
まずは、手を動かしてその速度感を体に叩き込んでください。
一瞬でスクラッチを召喚するショートカット
マウスに手を伸ばす必要はありません。以下のキーストロークだけで、PHPの実行環境が整った無菌室が即座に立ち上がります。
- macOS: `Cmd + Shift + N` (または `Shift` を2回押して「New Scratch File」と入力)
- Windows / Linux: `Ctrl + Shift + Alt + Insert`
ダイアログで「PHP」を選択すれば、即座にエディタが開き、PHPの構文解析と補完が有効になります。
【実戦知見】匿名スニペットを「プロジェクト横断」で使い回す
Scratch Filesには、ファイル形式だけでなく 「Scratch Buffer(一時バッファ)」 という機能があります。
`Cmd + Shift + A` (アクションの検索)から `New Scratch Buffer` を実行すると、ファイル名すら付ける必要のない純粋なテキストエリアが生成されます。
ここは、「数秒前にコピーしたJSONを整形したい」「長大なSQLをフォーマットしたい」「ちょっとした文字列置換の正規表現を試したい」といった、ファイル保存すら面倒な「思考のメモ帳」として機能します。しかも、このバッファの内容は、PhpStormを再起動しても自動保存(ローカル履歴機能で完全保護)されるため、消える恐怖がありません。
—
3. 開発スピードを加速させる隠し設定と環境構築
デフォルトのままでも十分強力ですが、プロのエンジニアであれば環境をチューニングし、秒単位のロスを削ぎ落とすべきです。
外部インタープリター(Docker / Vagrant)とのシームレスな統合
Scratch Filesの真骨頂は、「ローカルのPHPだけでなく、プロジェクト固有のDocker環境(PHP 8.xなど)でそのまま実行できる点」にあります。
正しく設定されていない場合、ローカル環境の古いPHPバージョンで実行され、`match`式やアトリビュートなどのモダンな構文でエラーになります。これを防ぐためのプロジェクト紐付け設定です。
1. `Preferences` (または `Settings`) > `PHP` を開く。
2. `CLI Interpreter` に、プロジェクトで使用しているDocker ComposeやDDEVなどのリモートインタープリターを指定する。
3. スクラッチファイルを開いた状態で、エディタ上部にある Context Configuration(実行ターゲットの切り替え)から、プロジェクトのPHPランタイムを選択する。
これで、プロジェクト内のコードを書くのと全く同じPHPバイナリ・同じ拡張機能セットで、スクラッチコードを即座に実行(`Ctrl + Shift + R` / `Ctrl + R`)できるようになります。
—
4. チームの生産性を底上げする「神プラグイン」と設定共有
個人で使うだけでも強力なScratch Filesですが、チーム開発においてこれをさらに活かすためのベストプラクティスを共有します。
絶対に入れるべき拡張プラグイン
PhpStorm標準機能だけでも十分ですが、以下のプラグインを入れることで、検証の幅が劇的に広がります。
1. JSON Parser
- APIのモックレスポンスやペイロードの構造をScratch上で安全に検証するために必須。
2. Database Navigator
- スクラッチファイルに書いたSQLを、そのままプロジェクトのDBコネクションで実行・検証できる。
チームでナレッジを共有する `.idea` 設定の活用
個人用のScratch Filesは共有されませんが、プロジェクト固有の「共有スクラッチ(Shared Scratches)」として、チーム全体で検証用コードのテンプレートを共有することが可能です。
PhpStormのプロジェクトルートにある `.idea` ディレクトリ配下には、実はチーム開発を加速させる設定の宝庫があります。以下に、チーム全体の開発スピードを同期させるための設定ファイルのベストプラクティス構成例を提示します。
`.idea/php.xml` (PHPランタイムおよび解析エンジンの共通化設定例)
`.idea/inspectionProfiles/Project_Default.xml` (検証コードにおけるコーディング規約の統一)
—
5. まとめ:思考の速度を落とさないエンジニアであれ
優れたエンジニアと、そうでないエンジニアの決定的な違いは、「道具に気を取られている時間(認知の摩擦)」の量にあります。
「ちょっと試したい」と思った瞬間に、無駄なファイル作成やディレクトリ整理に脳のメモリを割いてはいけません。PhpStormの Scratch Files を使いこなし、アイデアの閃きからコードの実行・検証までのレイテンシーを限りなくゼロに近づけてください。
あなたの開発環境は、あなた自身の思考のスピードそのものです。今日からスクラッチファイルを相棒にし、圧倒的なスピード感でコードを書き捨て、そして最高の結果だけをプロダクトに還元していきましょう。