私は仕事では CakePHP を使用しているので PHP 最強のフレームワークと名高い Laravel をなかなか触る機会に恵まれなかった。 Laravel は世界的には圧倒的なシェアを誇る PHP フレームワークである。 日本では依然として CakePHP が強いのだがこの 2 年の間にかなり追い上げてきたようなので、今後日本でも PHP での開発の主体が Laravel に変わっていくのではと思う。 今回個人的に勉強しようと思ったので、この記事に試行錯誤の過程を記録しておくことにする。

私が今使っているのは IntelliJ IDEA Ultimate だが PhpStorm でも同様と思われるので PhpStorm と書いておく。 事前条件として Composer はローカルにインストールしておくこと。 Composer 及び Vagrant に関してはここでは述べない (既に知っているものとする)。

Laravel インストール (PhpStorm 上から実行する場合)

これを行うにはローカルに Composer がインストールされている必要がある。 拙記事「Windows に Composer インストール」を参照。

PhpStorm で「新規プロジェクトの作成」を選択。 表示されるプロジェクトの種類から PHP -> Composer プロジェクト を選択する。 プロジェクト名などを適当に入力するがここでは test_laravel としておく。 一番下「パッケージ」のところで laravel/laravel を検索して選択。 するとインストールすることができるバージョンが一覧されるので最新のバージョンを選択する。 執筆時点だと v5.7.13 だった。 そのあと完了を押下すると composer install 相当の処理が走りすぐに開発ができるようになる。

PhpStorm を使わない場合やローカルに Composer などを入れたくない場合は以下に示すとおり Homestead 上から行う。

Laravel インストール (Homestead 上から実行する場合)

手順前後して恐縮だが、後述の Homestead インストールが済んでいるものとする。 Homestead には PHP 環境や Composer が最初からインストールされているので非常に簡単。 vagrant ssh で Homestead に接続する。 Homestead.yaml に書いてある folders: to: /home/vagrant/code がそのままの場合は以下で /home/vagrant/code に新規 Laravel プロジェクトを作成する:

composer create-project --prefer-dist laravel/laravel code

インストール完了後 http://192.168.10.10/ にアクセスし正しく Laravel のスタートページが表示されることを確認する。

Homestead インストール

Homestead は見た感じちょっと便利な Vagrant の Box という感じだった。 インストールは公式の手順に従い忠実に行えば苦もなく完了した。 そしてインストール後は Vagrant を使ったことがあれば何ら違和感なく使用することができた。 ちょっと違うのは Homestead.yaml という YAML で共有フォルダや nginx サイト設定などを簡単に行えるというところだった。 同じフォルダにある Vagrantfile 側に Homestead.yaml をインクルードするようなコードが書いてあったので、より簡単に設定が書けるようにという配慮なのだと思われる。

Vagrant の時はデフォルトで Vagrantfile があるフォルダがそのまま共有フォルダとしてマウントされるようになっているので Vagrantfile とプロジェクトのソースコードを同一フォルダに置くような運用をしたりするのだが Homestead の場合は最初から Homestead インストールディレクトリとプロジェクトのソースコードが切り離せる構造になっている上、複数プロジェクト・複数ホスト名が考慮された作りになっている。 ということで、

  • Homestead は C:\Users\hoge\Homestead にインストール
  • プロジェクトのソースは C:\Users\hoge\PhpStormProjects\test_laravel に置く
  • (今後増えた場合) プロジェクト 2 のソースを C:\Users\hoge\PhpStormProjects\fuga に置く

といったことが苦もなくできる。 つまり Homestead.yaml などの Homestead 関連のファイルは個人の環境で書き換えさせるものとして Git 管理下にしないほうが良さそうだ。 例えば上記の例の場合 (今後増えた場合は含まない) は Homestead.yaml を以下のように設定する:

ip: "192.168.10.10"

...

folders:  # これは複数定義できる
    - map: C:\Users\hoge\PhpStormProjects\test_laravel
      to: /home/vagrant/code

sites:  # これも複数定義できる
    - map: homestead.test
      to: /home/vagrant/code/public

本当は hosts ファイルに上記 homestead.test を定義すれば http://homestead.test で確認できるが、今回は 1 サイトしかないし面倒なので http://192.168.10.10 でアクセスする (2 サイト以上ある場合は名前をつけないと区別ができなくなる)。 そうすると Laravel のデフォルトページが表示されるのが確認できる。

注釈するが、結局のところ中身はただの Vagrant (Box の中身は Ubuntu Server だった) なので vagrant up してからアクセスすること。 Homestead.yaml を書き換えた場合は vagrant reload (再起動)。

まとめるとローカルに PHP をインストールして試行錯誤するより遥かに楽なので使わない手はない。