Laravelに関する世界観です。PHPも参照のこと。
PHPのWebフレームワークとして一番人気があるのはLaravel。
Laravel, Django, Ruby on Railsを指して「三大バックエンドフレームワーク」と呼ばれる。
PHP(フレームワーク)も参照のこと。
Laravelの良いところは、
1.機能が多い。特にコマンドラインの機能などが多く、さまざまなスケルトンの作成ができる。
2.信頼できる。ログイン機能は素のPHPで作ると「本当にきちんとセキュリティができているのか」などが不安。Laravelで作ってしまえばきちんと動く。
3.他のソフトウェアとの連携がしやすい。Vue.jsなども使える。
4.分かりやすい。Railsと同じMVCを採用しながら、分かりやすく、また守らなければならない不自由な規約や制限も少ない。
LaravelはMicrosoftの.NETを開発していたTaylor Otwellという方が作っていて、Windowsなどで使う場合なども仮想サーバを構築する方法があるなどよく考えられている。もちろんLinux + PHPでも動く。
Laravelの文書は、英語の公式が良いと思います。日本語でも情報はありますが、僕は英語の勉強を兼ねて英語で読んでいます。
Webプログラマを目指すなら、もし中級者程度の知識(僕がこのホームページに書いているような知識)がある方は、最初からLaravelを習得するのが一番近道だと思います。
まず、新しいプロジェクトは、laravel newコマンドで作成する。
ルーティングはweb.phpで行う。リクエスト(getなど)に対して、パス(/など)とコントローラ名@アクション名(HogeController@indexなど)を関連付ける。
そして、コントローラ(たとえばHogeController)はControllerを継承し、アクション(たとえばindex()関数)を定義する。
モデルはModelを継承する。
ビューであるフロントは、Bladeというテンプレートエンジンを使用する。{{ ~ }}のように波かっこで変数の値を表示できる。
また、Laravelには、Railsなどにあるようなマイグレーションファイル機能がある。直接SQLを書かなくても自動でデータベース上のテーブルを作成できる。
詳しくは、以下のリンクが詳しい。
みなさんは、WebサービスやWebアプリケーションを開発するために、GUIやコマンドラインアプリよりも敷居が高いと感じたことはないでしょうか。
Webプログラミングを行うためには、サーバーや言語処理系やデータベース管理システムなどの「必要な開発環境」を導入する必要があります。
確かに、WindowsならばXAMPPを入れる、という選択肢もありますが、「WindowsにApache/MySQL/PHP/Perlを入れるのか、何だか嫌だな」とか、「設定などのやり方が分からなくて、きちんと管理できそうにないから導入したくない」などといった意見があると思います。
だからといって、LinuxのUbuntu Serverを入れて自分でサーバーソフトウェア一式を導入して自宅サーバーを構築するのも、セキュリティが不安だし、ためらいがある方も多いと思います。
ここで、LaravelにはLaravel Homesteadというソフトウェアを導入して、Windowsあるいは他のOS上に仮想環境上に自宅サーバーを構築する方法があります。必要なくなったらすぐに削除できて、仮想マシン上のUbuntuにPHPからNginxまで必要なソフトウェアをすぐに導入でき、仮想環境上のサーバーとWindowsのWebブラウザが通信してビューを表示し、楽に開発ができるようになります。
今まで、「ローカルサーバーを立てたくないからWebプログラミング入門を諦めていた方」には、これがとてもおすすめです。
まず、VirtualBoxは仮想化ソフトウェアです。Windowsや多くのOS上でUbuntuなどのLinuxなど、別のOSシステムを仮想的に動かすことができます。
VirtualBoxを使うことで、Windows上でUbuntu Serverを動かし、WindowsでWebブラウザで確認しながらUbuntu ServerがLaravelのWebサービスを提供してくれます。
しかしながら、VirtualBoxにLinuxを導入してサーバーソフトウェア一式を整備するのは、たくさんの手間と苦労が必要になります。
そこで、仮想マシン上にOS、サーバー、PHP、データベースを簡単に構築することができる、Vagrant(ベイグラント)というソフトウェアを使います。
VirtualBoxとVagrantを組み合わせることで、「お手軽仮想サーバー」をWindowsなどのOS上に作ることができます。
Vagrantで使われるVagrant boxは仮想マシンのテンプレート(ひな形)となるファイルなどのことで、一から自分で環境を作るのではなく、テンプレートを使って同じ環境を自動構築するために利用できます。
また、Laravelが提供しているHomestead(ホームステード)というソフトウェアを使うことで、Laravelが動作する開発環境を簡単に導入できます。たとえば、Laravel公式の設定済みのVagrantfileを利用できます。
また、ComposerはLaravelの使っているPHPの依存関係解決ツールです。Laravel自身のインストールにも使われます。Laravelをインストールする際、XAMPPを使うのであれば、XAMPP + Composer + Laravelを順に導入することになります。
VirtualBox/Vagrantも参照のこと。
Laravel Homesteadには、UbuntuからMySQLまで多くのソフトウェアが含まれています。以下を参照のこと。
また、Vagrant boxはいつでも削除でき、数分で再作成できます。
Laravelでサービスを作って、Amazon EC2などの本番環境にデプロイする手順は以下が参考になる。
AWSも参照のこと。
Composerとは、Laravelにおいて使用可能なライブラリやツールなどの依存関係を管理・解決するツールのこと。
Laravelにおいて、依存関係のあるツールをインストールしたい時に、依存関係にあるライブラリなどを適切に導入してくれる。また、Laravel自体のインストールにも使う。
2024.08.28
以下のYouTuberのセイト先生の動画で、Dockerを使ったLaravelの開発環境構築の手順が説明されており、Docker初心者には参考になります。
Dockerも参照のこと。
2024.08.28-29
Webフレームワークを参照のこと。