プロジェクトごとに Vagrant インスタンスを用意したほうが便利

2 年前に同様の記事を書いたのだが、当時は Vagrant インスタンスをローカルマシンに 1 つインストールしてそれを複数のプロジェクトで使い回す想定でいた。 いろいろ試行錯誤した結果、それよりも 1 つのプロジェクトごとに Vagrant インスタンスを別々に用意したほうがはるかに便利なことに気がついた。 前者だと複数のプロジェクトのインスタンスを同時に立ち上げる必要がある場合に 1 つだけ立ち上げれば済むのでリソース使用量が少なくて良いというのがあるが、そんなケースはほとんど発生しない。 大体がプロジェクト A に携わっている日にはプロジェクト A の仕事しかしない。 それよりは後者の方が仮想マシンが完全に分かれているので単純で安心だ。

前提

以下はインストールされているものとする:

  • PhpStorm (IntelliJ IDEA Ultimate で PHP プラグインを使用している状態でもよい)
  • Pleiades (PhpStorm 日本語化)
  • PHP 7.4 (PATH が通されており php.ini の設定も済んでいる状態)
  • Composer
  • Vagrant (Virtual Box)
  • Cygwin (PhpStorm のコンソールでも良いかも)

PhpStorm 上で Laravel プロジェクト作成

  1. PhpStorm で ファイル -> 新規プロジェクト
  2. プロジェクトの種類の中から Composer プロジェクトを選択
  3. ロケーションを適切に入力
  4. 'composer 実行可能ファイル' を選択
  5. パッケージに laravel/laravel と入力
  6. インストールするバージョンは <default> を選択。バージョン指定したい場合はそのようにする
  7. 作成を押下すると Composer の処理が走るのでしばらく待つ (2020/09/10 現在なぜか失敗する……が問題ない)

2020/09/10 現在 <default> 選択すると Laravel 8 がインストールされる。 いつからそうなったのかは分からないが、今の Laravel プロジェクトを Composer からインストールすると Laravel 側の .git ディレクトリも入ってしまう。 これだと自分の開発した Git のヒストリーと Laravel 本体のヒストリーが混じってしまう。 rm -fR .git で一旦削除した上で改めて Git 管理下に置きたい。

プロジェクトごとの Vagrant インスタンス

Laravel 公式の Homestead の説明プロジェクトごとにインストールのところをそのまま実施する。

composer require laravel/homestead --dev
vendor\bin\homestead make
vagrant up  # Box のダウンロードに時間がかかる

.gitignore

ルートの .gitignore に Homestead 関連と IntelliJ IDEA 関連のファイルを追記:

.idea/
.vagrant
after.sh
aliases
Vagrantfile
.phpstorm.meta.php
_ide_helper.php
_ide_helper_models.php