Laravel

Laravel

Laravel

PHPのWebフレームワークとして一番人気があるのはLaravel。
Laravel, Django, Ruby on Railsを指して「三大バックエンドフレームワーク」と呼ばれる。

Laravelの良いところ

Laravelの良いところは、
1.機能が多い。特にコマンドラインの機能などが多く、さまざまなスケルトンの作成ができる。
2.信頼できる。ログイン機能は素のPHPで作ると「本当にきちんとセキュリティができているのか」などが不安。Laravelで作ってしまえばきちんと動く。
3.他のソフトウェアとの連携がしやすい。Vue.jsなども使える。
4.分かりやすい。Railsと同じMVCを採用しながら、分かりやすく、また守らなければならない不自由な規約や制限も少ない。
LaravelはMicrosoftの.NETを開発していたTaylor Otwellという方が作っていて、Windowsなどで使う場合なども仮想サーバを構築する方法があるなどよく考えられている。もちろんLinux + PHPでも動く。

Laravel Homestead

Web開発のための環境を整える、という敷居の高さ

みなさんは、WebサービスやWebアプリケーションを開発するために、GUIコマンドラインアプリよりも敷居が高いと感じたことはないでしょうか。
Webプログラミングを行うためには、サーバーや言語処理系やデータベース管理システムなどの「必要な開発環境」を導入する必要があります。
確かに、WindowsならばXAMPPを入れる、という選択肢もありますが、「WindowsApache/MySQL/PHP/Perlを入れるのか、何だか嫌だな」とか、「設定などのやり方が分からなくて、きちんと管理できそうにないから導入したくない」などといった意見があると思います。
だからといって、LinuxUbuntu Serverを入れて自分でサーバーソフトウェア一式を導入して自宅サーバーを構築するのも、セキュリティが不安だし、ためらいがある方も多いと思います。
ここで、LaravelにはLaravel Homesteadというソフトウェアを導入して、Windowsあるいは他のOS上に仮想環境上に自宅サーバーを構築する方法があります。必要なくなったらすぐに削除できて、仮想マシン上のUbuntuPHPからNginxまで必要なソフトウェアをすぐに導入でき、仮想環境上のサーバーとWindowsWebブラウザが通信してビューを表示し、楽に開発ができるようになります。
今まで、「ローカルサーバーを立てたくないからWebプログラミング入門を諦めていた方」には、これがとてもおすすめです。

VirtualBox + Vagrant + Homestead + ComposerでLaravelの開発環境を導入する

まず、VirtualBoxは仮想化ソフトウェアです。Windowsや多くのOS上でUbuntuなどのLinuxなど、別のOSシステムを仮想的に動かすことができます。
VirtualBoxを使うことで、Windows上でUbuntu Serverを動かし、WindowsWebブラウザで確認しながらUbuntu ServerがLaravelのWebサービスを提供してくれます。
しかしながら、VirtualBoxLinuxを導入してサーバーソフトウェア一式を整備するのは、たくさんの手間と苦労が必要になります。
そこで、仮想マシン上にOS、サーバー、PHP、データベースを簡単に構築することができる、Vagrant(ベイグラント)というソフトウェアを使います。
VirtualBoxVagrantを組み合わせることで、「お手軽仮想サーバー」をWindowsなどのOS上に作ることができます。
Vagrantで使われるVagrant boxは仮想マシンのテンプレート(ひな形)となるファイルなどのことで、一から自分で環境を作るのではなく、テンプレートを使って同じ環境を自動構築するために利用できます。
また、Laravelが提供しているHomestead(ホームステード)というソフトウェアを使うことで、Laravelが動作する開発環境を簡単に導入できます。たとえば、Laravel公式の設定済みのVagrantfileを利用できます。
また、ComposerはLaravelの使っているPHPの依存関係解決ツールです。Laravel自身のインストールにも使われます。Laravelをインストールする際、XAMPPを使うのであれば、XAMPP + Composer + Laravelを順に導入することになります。

Laravel Homesteadのシステム

Laravel Homesteadには、UbuntuからMySQLまで多くのソフトウェアが含まれています。以下を参照のこと。

また、上記のページで

Vagrant boxes are completely disposable. If something goes wrong, you can destroy and re-create the box in minutes!

(僕の翻訳:Vagrant boxは完全に使い捨て可能である。何か間違いがあれば、boxを数分で消去・再作成できる!)
と書かれているように、Vagrant boxはいつでも削除でき、数分で再作成できます。