PHPのフレームワークには様々あります。今回は、初心者にもおすすめのPHPフレームワーク「Laravel」についてご紹介。Laravelとはどんなフレームワークなのか、どのように学習すれば良いかなどについて解説していきます。
プログラミングを学習する際、実務で使えるまでレベルを上げたいならフレームワークの学習は必須です。実際に多くの開発現場ではフレームワークを用いて開発を行っています。逆に一切フレームワークを使わずに開発を行っている現場は少なく、いくらプログラミング言語を学んでも、フレームワークが使えないと仕事になりません。
しかし、フレームワークにもさまざまな種類があり、何を学べば良いか悩んでいる人もいるのではないでしょうか。
PHPのフレームワークは、
- Laravel
- CakePHP
- Symphony
- ZendFramework
- Codeigniter
- FuelPHP
などが有名です。これだけ選択肢があれば、何を選べば良いか迷ってしまいますよね。そこでPHP初心者におすすめしたいフレームワークがLaravelです。
LaravelはPHPフレームワークの中でも特に学習しやすく、初心者でも扱いやすいとよく言われます。そんなLaravelはどんな特徴を持ったフレームワークなのでしょうか。
今回はLaravelとはどんなフレームワークなのか、どのように学習すれば良いかなどについて解説していきます。
Laravelとは?
Laravelとは冒頭の通り、PHPのフレームワークの1種です。
プログラミングをする際、より複雑な構造のシステムを作るにはクラスを作成したり、ライブラリを使ったりする必要があります。そこで、最初からクラスやライブラリが用意されていて、書くコードの量を減らしてくれるのがフレームワークです。
先ほど紹介したように、PHPのフレームワークにはたくさんの種類があります。その中でも世界でトップのシェアを誇っているのがLaravelです。
日本ではPHPのフレームワークなら、LaravelかCakePHPのどちらかと言われてきましたが、年々Laravelの需要が増加しています。
よって、フリーランスでPHPの案件を獲得したい、Web系開発を行っている企業に就職したいなどの目的でPHPの学習を行っているなら、フレームワークはまずLaravelを選ぶのが良いでしょう。
Laravelの特徴
それでは、Laravelとはどんな特徴を持ったフレームワークなのでしょうか。特徴を知り、どんな部分で優れているフレームワークなのか知っていきましょう。
Laravelの特徴①|MVCフレームワーク
MVCフレームワークとは、Laravelに限らずさまざまなフレームワークに用いられている考え方です。
M…Model V…View C…Controller
の頭文字を取ってMVCと呼ばれています。
開発の現場ではフロントエンドとバックエンドを分けて開発する場面が多いです。
しかし、PHPはバックエンド言語ではあるものの、HTMLに直接記載する言語なので、見た目に係る部分と、裏側で動作する部分の開発が混同しやすい傾向があります。
そこでMVCモデルでは、ユーザーから見える部分をView、データベースの操作などユーザーから見えない部分をModel、そしてViewとModelの仲介役をControllerとします。
例えば、PHPを用いて会員登録の入力フォームを作成するとしましょう。この場合、
- 入力フォームに名前など情報を入力する
- 入力データにバグが仕組まれていないかなど確認をする
- データベースに登録する
- 登録完了のページへ移動する
という流れになります。これらを1つのファイルにまとめて記載することも不可能ではありませんが、コードがごちゃごちゃして読みにくいです。
- ①・④→View ②→Controller ③→Model
に分けることで、整理されてより見やすいコードになります。
このように役割ごとにデータを分けることになるので、見た目の部分はこの人に、データベース関連の仕事はこの人に、と、仕事の割当てもスムーズになります。
Laravelの特徴②|blade(ブレード)を使う
blade(ブレード)とは、View部分で用いる、PHPコードの記載量を減らしてくれる便利なものです。
HTMLにPHPのコードを書く際は、
<?php ~~ ?>
と書くでしょう。しかし、HTMLに記載するPHPの量が多いと、とても見づらいコードになってしまいます。
bladeはプログラミングにおけるメソッドのようなもので、書き方は「@~(blade名)」だけです。
bladeの例としては、
- @if(if文の開始)
- @endif(if文の終了)
- @yield(sectionの生成)
などが存在します。
このように、bladeを使用することで記載するコードの量を減らし、見た目をスッキリさせることができます。
ちなみに上記で紹介したbladeは最初から使えますが、自分で自由にbladeを作成することも可能です。
Laravelの特徴③|artisanコマンドで作業量を減らせる
Laravelにはartisan(アルチザン)という独自のコマンドがあります。ちなみにartisanとは職人という意味です。
このartisanコマンドはコマンドプロンプト上で、「php artisan~」として使用します。これを使うことで、コントローラーやモデル、マイグレーションファイルの作成が容易になります。
コントローラーを作成したいときは、
php artisan make:controller コントローラー名
だけと、とてもシンプルで簡単です。
ちなみに、
php artisan make:controller コントローラー名
でコマンドを確認できるので、こちらを積極的に活用しましょう。
Laravelを使うメリット
Laravelが開発現場で良く用いられる理由にはどんな理由があるのでしょうか。Laravelのメリットを見ていきましょう。
Laravelのメリット①|初心者でも学びやすい
LaravelはPHPのフレームワークの中でも特に初心者が習得しやすいものとよく言われます。
その理由として、bladeによって、簡単にコードが記述できることや、バリデーションを自動で行ってくれるなど初心者が忘れてしまいがちなことをカバーできる点が挙げられるでしょう。それに加え、Laravelでは先ほど紹介したMVCモデルをもとに開発を行います。
そのため、比較的作業が簡単なViewの部分は経験の浅いプログラマーになど仕事を割り振ることで、幅広いレベルのエンジニアが集まった現場でもスムーズに仕事が進められます。
ただ、LaravelはPHPのコードの記載量を減らしている文、Laravel独自の文法も多いです。そのため、早いうちからLaravelを使っていると、Laravelでコーディングはできるけれども、PHPのコードの書き方がわからないという事態に陥ることも多いので、PHP・Laravel両方の学習を行いましょう。
Laravelのメリット②|自由度が高い
Laravelではディレクトリ配置やプログラムの拡張の面で柔軟性に優れています。必要に応じて自由にファイルを変えることができるのは便利でしょう。特に小規模開発の現場だと、スピーディーに変更点が生じた際の対応ができます。
ただし、大規模な開発になると、自由度が高すぎるゆえにデータがごちゃごちゃになってしまうなどのデメリットもあります。よって、この場合はルールを決めたうえでLaravelを扱う必要があります。
Laravelのメリット③|データベースの操作が楽
PHPはたくさんあるプログラミング言語の中でもデータベース接続において優れた言語とよく言われます。そしてLaravelはその中でも特にデータベース接続が容易なフレームワークです。
PHPでもデータベースに接続するには大量のコードの記述が必要となりますが、Laravelなら、データベースの接続や作成なども、少ない記述で可能となります。
Laravelを使ううえでの鍵となるのがマイグレーション(migration)です。アプリケーションを作成する際、情報の追加などデータベースに変更を加える場面は多いです。この変更をMVCモデルのモデル側から行うことをマイグレーションと言います。
Laravelではデータベースへの変更に関連するコードをマイグレーションファイルから行うことで、セキュリティ性を保持し、かつコードの記載量を減らせます。
Laravelで出来ること
PHPで出来ることはだいたいLaravelでも可能です。そこで、Laravel開発はどんな場面で使われることが多いか見ていきましょう。
小規模webアプリケーション開発
Laravelは主にwebアプリケーション開発の現場で使われています。中でも先ほど解説したように、大規模だと自由度が高すぎて逆に面倒なので、小規模な開発現場が多い傾向にあります。
Laravelのメリットとして、データベース接続が容易であることを先ほど挙げました。そのため、会員制サイトなどの開発に使われています。
Laravelの使い方
それでは、Laravelを使うにはどんな準備が必要なのでしょうか。インストール方法について紹介していきます。
ステップ1|Composerをインストールする
Composerとは依存性管理ツールのことを言います。Laravelのインストールには、Composerを通す必要があります。
こちらからComposerを入手しましょう。
Windowsの場合はそのままインストールできますが、Macの場合はコンソールから操作する必要があるので注意してください。
ステップ2|Laravelをインストールする
Composerの準備ができたら、Windowsはコマンドプロンプト、Macはターミナルから以下のコマンドを入力してください。
composer create-project laravel/laravel --prefer-dist プロジェクト名
次に、
cd プロジェクト名
でプロジェクトのあるディレクトリへ移動します。そして次のコマンドを入力してください。
php -S localhost:8000 -t public
これで準備は完了です。
Chromeなどブラウザを開き、URLに「localhost:8000」と入力してみましょう。そしてLaravelと大きく書かれたページが表示されれば準備完了です。
Laravelの勉強方法
Laravelを学習する手段は主に本とインターネットです。それぞれ方法のおすすめ書籍・サービスを紹介します。
Laravelの勉強方法①|本で勉強する
何回も同じ文章を読んで確認する方が頭に定着しやすいなどといった人は本で勉強するのがおすすめです。
ただ、PHP関連書籍は多くても、Laravel関連書籍は種類が少なめ。そこで、失敗しないように、レベルごとにおすすめの書籍を紹介します。
Laravelの学習本|PHPフレームワーク Laravel入門
初めてフレームワークに触れる人におすすめなのが本書です。MVCモデルについて詳しく解説されており、この概念を少しずつ理解しながらLaravelの学習を進められます。
PHPに関する理解が浅くても、理解できる内容なので、PHPに触れたことはないけれども、急に仕事でLaravelを使わなければいけなくなった人にもおすすめです。
ただ、本書は超初心者向けの内容なので、他の言語でフレームワークに触れたことがある人からすると物足りないかもしれません。実際にMVCフレームワークを理解している人だと、インターネットで少し調べればわかる内容だと思います。
Laravelの学習本|HPフレームワーク Laravel Webアプリケーション開発 バージョン5.5 LTS対応
Laravel中級者以上におすすめなのが本書。
こちらは先ほど紹介した書籍よりも、専門用語が多く登場しており、内容も難しくなっています。そのため、学習本ではあるものの、初心者よりある程度プログラミング経験のある中級者以上向けでしょう。
かなり書かれている情報が充実しており、Laravelの学習はもちろん、仕事でLaravelを使う際の逆引き辞書的存在としても活躍します。
Laravelの学習本|Laravel: Up & Running: A Framework for Building Modern PHP Apps
エンジニア御用達出版社オライリーが発行しているLaravel関連書籍です。
まだ日本語訳されているものがなく、英語で書かれているので翻訳作業が大変ですが、やはりオライリーが出版している書籍なので解説がとても詳しく、読む価値はあります。
すでに仕事でLaravelを使っている人でも、知らないような細かい知識がたくさん載っているのが本書の強みです。よりLaravelを使った開発者としてのスキルを上げたいなら読んでみてください。
Laravelの勉強方法②|インターネットで学ぶ
Laravelは日本でもよく使われるフレームワークなので、インターネットに日本語の解説も多く存在しています。
特に動画で学習したい人、学習にかかる費用を安く抑えたい人などはインターネットを活用して学習を進めましょう。
Laravelの学習サイト①|Udemy
動画でプログラミングを学べるサイトはたくさん存在しますが、フレームワークに関する講義は限られています。そんな中でもUdemyは200以上のLaravel関連動画があっておすすめです。
1万円近い値段のものが多く、購入をためらってしまうかもしれませんが、セール期間だと1,000円~2,000円程度になるので、セールを狙って買うと良いでしょう。
英語の講義だとハイレベルな内容まで網羅しており、初心者から上級者までおすすめです。
Laravelの学習サイト②|Laracasts
Laravelに特化した学習サイトが「Laracasts」。
ゲーム感覚で楽しみながらLaravelが学べるのが良いです。日本語化はされていませんが、Chromeの翻訳機能などを活用すれば問題ありません。
一部有料ではあるものの、無料の部分だけでも基本はしっかり身に着きます。
Laravelの学習サイト③|Laravel.com
やはりエンジニアなら読んでおきたいのがリファレンスです。
初心者からすると内容が難しく感じるでしょうが、リファレンスは公式が出しているものなので、どんな媒体よりも情報が正確というメリットがあります。
バージョンごとにリファレンスが用意されているので、自分が使用しているバージョンのものを確認してください。
まとめ
Laravelは、今流行りのフレームワークであり、PHPを学んでいく上では、欠かせない要素になります。
これを機にLaravelを勉強し、フレームワークを使いこなせるようになってみてください。