私は仕事では 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 をインストールして試行錯誤するより遥かに楽なので使わない手はない。