こんにちは!開発現場をより心地よく、そして生産性高くするための工夫について考える時間ですね。
皆さんは、新しいチームメンバーがプロジェクトに参画した初日、こんなやり取りをした(あるいはされた)ことはありませんか?
> 「あ、そのマイグレーションを実行するときは、環境変数に `APP_ENV=local` をつけて、あとメモリ上限も増やさないとエラーになりますよ」
> 「テストを走らせるときは、どの引数を渡すんでしたっけ…?」
こういう「暗黙の知見」や「ローカル手順のバラツキ」って、チームの規模が大きくなればなるほど、開発効率をじわじわと削るボトルネックになりますよね。
今回は、世界最高峰のPHP統合開発環境である PhpStorm の機能を使って、こうした実行コマンドの差異を完全に撲滅し、「プロジェクトを開いた瞬間から、誰でも一発で同じ環境・同じコマンドを実行できる状態」 を作る方法を解説します。
これをマスターすれば、毎日のコーディングやテスト実行が劇的に楽になりますよ。さあ、一緒に見ていきましょう!
—
なぜ「Run Configuration(実行構成)」の共有が必要なのか?
PhpStormを使っていると、画面の右上にある「再生ボタン(▶)」やデバッグボタンの横に、実行したいコマンド(PHPUnit、Symfony/LaravelのConsoleコマンド、npmスクリプトなど)を登録する場所がありますよね。これが 「Run Configuration(実行構成)」 です。
通常、この設定は個人のPC内(JetBrainsの内部設定フォルダ)に保存されます。そのため、次のような問題が起きていました。
1. 属人化する: 人によってコマンドの引数や環境変数の設定が微妙に異なり、「自分の環境では動くのに、CIや他の人の環境では落ちる」という現象が起きる。
2. オンボーディングコストが高い: 新規参画者がプロジェクトの適切な実行方法を把握するまでに何日もかかる。
3. ヒューマンエラー: 重要な環境変数の付け忘れなどによる不具合。
これらを解決するのが、「Run Configurationを `.run` フォルダとしてGit管理し、チーム全体で共有する」 というアプローチです。
—
基礎セットアップ:PhpStormで実行構成を作る
まずは、基本の「一歩」から丁寧に行きましょう。今回は例として、LaravelやSymfonyなどのプロジェクトでよく使う「カスタム引数を持ったPHPUnitの実行構成」を作ってみます。
1. 実行構成の新規作成
PhpStormのメニューから、 [Run] > [Edit Configurations…] を開きます。
左上の「+」ボタンを押し、実行したい種類(例: PHPUnit)を選択します。
2. チームで共有すべき「揺るぎない設定」の入力
以下のように設定を行います。
- Name: `Unit Tests (All)` など、誰が見ても何をするものか分かる名前
- Test Runner: 設定ファイルや解釈させるテストスイートのパス
- Environment variables: チーム全員が共通して持つべき環境変数(例: `APP_ENV=testing; XDEBUG_MODE=off`)
- Before launch(前処理タスク): テスト実行前に自動で行いたい処理(例: データベースのマイグレーションやキャッシュクリアなど)
ここで設定した内容が、そのままチーム全員の標準となります。「テストを走らせる前に必ずキャッシュをクリアする」といった前処理も自動化できるため、手順抜けが物理的に不可能になります。
—
核心:`.run` フォルダをGit管理してチームに共有する
ここからが本題であり、チーフエンジニアとしてのこだわりポイントです。PhpStormには、作成した実行構成をプロジェクト内のファイルとして書き出す機能があります。
1. 設定をプロジェクトディレクトリに保存する
先ほどの [Edit Configurations] 画面、あるいは設定ダイアログで、作成した構成の右上にある 「Store as project file」 (プロジェクトファイルとして保存)というチェックボックスを確認してください。
これを有効にすると、プロジェクトのルートディレクトリに `.run/` という隠しフォルダが自動生成され、その中にXML形式で設定が保存されます。
2. 生成される設定ファイルの実態
実際に生成されるXMLファイル(例: `.run/Unit_Tests_All.xml`)を覗いてみましょう。これがチームの共有資産となります。
3. Gitでコミットする
この `.run` フォルダを、そのままGitの管理下に置きます。
.run フォルダをGitの追跡対象に追加
git add .run/
git commit -m “feat(ide): チーム共有用のPhpStorm Run Configurationsを追加”
git push origin main
【アーキテクトからの重要な指摘】
`.idea/` ディレクトリ全体をGit管理しようとすると、個人のウインドウサイズやカーソル位置などのプライベートな設定まで混ざってしまい、コンフリクトの元になります。
そのため、`.idea/` は基本 `.gitignore` に除外した上で、共有したい実行構成だけを `.run/` フォルダとして切り出して管理する のが、モダンなチーム開発のベストプラクティスです。
—
精度高いHelloWorld的な動作確認
設定が正しく機能しているか、新規メンバーの視点になって動作確認をしてみましょう。
1. クリーンな状態のシミュレーション:
手元のプロジェクトを別のディレクトリに新しくクローンするか、Gitから最新の状態をプルします。
2. PhpStormでのプロジェクトオープン:
PhpStormでそのプロジェクトを開きます。
3. 実行構成の自動検出確認:
右上の実行構成ドロップダウンを確認してください。開発者が手動で設定を追加しなくても、最初から `Unit Tests (All)` やその他の共有設定が綺麗にリストアップされているはずです。
4. ワンクリック実行:
再生ボタンを押す、またはショートカット(Macなら `Control + R`、Windows/Linuxなら `Shift + F10`)を押します。
【実行ログのイメージ】
1. Before launchに設定した前処理が自動的に走り、キャッシュがクリアされる
/usr/local/bin/php /path/to/project/artisan cache:clear
Application cache cleared successfully.
2. 定義された環境変数(APP_ENV=testing, DB=sqlite in-memory)を伴ってテストが即座に走る
/usr/local/bin/php /path/to/project/vendor/bin/phpunit –configuration /path/to/project/phpunit.xml
PHPUnit 9.6.x by Sebastian Bergmann and contributors.
Runtime:espèce PHP 8.2.x
Configuration: /path/to/project/phpunit.xml
…….. 8 / 8 (100%)
Time: 00:01.234, Memory: 20.00 MB
OK (8 tests, 12 assertions)
おめでとうございます!これで、チーム全員が「正しい環境変数」「正しいコマンド」「正しい前処理」で、迷うことなく開発を進められる基盤が整いました。
—
まとめ:開発体験(DX)を最大化するために
今回は、PhpStormの `Run Configuration` を `.run` フォルダ経由でGit管理し、チームの実行コマンドの差異を完全に撲滅する手法を解説しました。
- 暗黙の知見をコード(設定ファイル)化する ことで、属人性を排除できる。
- 新規参画者のオンボーディングコスト を劇的に下げ、初日から開発に集中できる環境を作れる。
- 個人の設定(`.idea`)とチーム共有の設定(`.run`)を明確に分離することで、コンフリクトのないクリーンなリポジトリを維持できる。
開発ツールは、ただコードを書くだけのものではありません。「チーム全体の認知負荷を下げ、創造的な作業に集中するための強力なパートナー」 です。
明日からのチーム開発に、ぜひこの `.run` フォルダの共有を取り入れてみてください。毎日のコーディングが、驚くほどスムーズになりますよ!