Laravelとは
この連載で紹介していく「Laravel」は、2011年6月にバージョン1がリリースされた比較的後発のPHPフレームワーク※です。ここではまず、Laravelがどういったフレームワークなのか見ていきましょう。
※フレームワークとは何かについては、こちらの解説を参照してください。
人気急上昇のフレームワーク
Laravelは2011年当時人気を博していたCodeIgniterのようなPHPフレームワークの使いにくい部分を克服しようとして作成されました。その後、注目されるようになり、ここ数年人気が急上昇しています。
どれほど人気なのかをGoogle Trendsを使って確認してみましょう。Google Trendsにトピックとして以下の各有名PHPフレームワーク名を指定し、カテゴリとしてプログラミングを指定して、2011/01/01から2018/09/30までの人気度の動向を見てみます。
- Laravel【青色】
- CakePHP【赤色】
- Symfony【オレンジ色】
- CodeIgniter【緑色】
- FuelPHP【紫色】
図1は地域として日本を指定した場合の結果です。
当初絶大な人気を博していた赤色のCakePHPが下降していくのに反して青色のLaravelが急上昇しています。これが、世界の動向に目を向けるとさらに急上昇しているのがわかります。図2に地域をすべての国に指定した結果を掲載します。
日本の動向以上にLaravelが急上昇しています。興味深いのは日本と違って、Symfonyが常に高い人気を博している点です。実は、この連載で紹介していくLaravelも、内部的にはSymfonyを利用しています。つまり、もともと人気の高かったSymfonyをベースに、より良いフレームワークとして作られたのがLaravelなのです。
Laravelの特徴
Laravelは、一般的にフルスタックフレームワークと言われています。フルスタックフレームワークというのは、データベースからのデータの取得処理やログイン認証処理などの自動化といった、およそPHPのWebシステム開発に必要な機能がほぼすべて含まれているフレームワークのことです。先述のCakePHPやSymfonyもフルスタックフレームワークです。フルスタックフレームワークは機能が豊富な反面、学習コストが高いことが多いです。一方、Laravelは、学習コストが低く、コードが書きやすいことをうたったフレームワークです。
そのLaravlの本家サイトには「The PHP Framework For Web Artisans」とのキャッチコピーがあります。訳すと「Web職人のためのPHPフレームワーク」です。この連載を通して、Laravel未体験のWeb職人にLaravelの良さを味わっていただこうと思います。
具体的には、Laravelの機能として表1の内容を扱う予定です。
項目 | 内容 |
---|---|
ルーティング |
URLと対応する処理を紐づけているのがルーティングです。 このルーティング機能があるおかげで、.phpで終わるURLのようなphpファイ ルを連想するURLを避けることができ、処理をひとつのファイルやクラスにま とめることが可能となります。 |
Blade | Laravelはテンプレートエンジンを内包しています。それがBladeです。 |
ミドルウェア |
URLに対応したある処理を行う際、その前後に処理を付加することができます。 これをミドルウェアと言います。 |
エラーハンドラ |
例外やエラーが発生した際、そのパターンに応じて、例えば障害発生の画面を 表示したりなどの処理を行うことができます。 |
DI |
システム開発を行っていくと、クラスのインスタンス同士がさまざまに依存し あうようになります。この依存度を極力下げて、実行時に外部から与えてもら えるようにした仕組みがDI(Dependency Injection: 依存性注入)です。 Laravelは、このDIを実現する方法として、サービスコンテナというのを用い ています。 |
バリデーション |
システム開発を行う際、入力値のチェック、つまりバリデーションのコー |
データベース連携 |
Webシステムにおいて、データベースを使わないものは少ないでしょう。 そのデータベースとPHPを連携させる場合、定型処理が含まれ、 それなりに煩わしいものです。そういった定型処理を行う機能がLaravelには あります。 |
認証の自動化 |
Webシステムでは、そのシステムへのログイン処理が含まれることが多々あり ます。 また、そういったシステムでは、ログインしていないと使ってはいけない処理も 含まれています。そういったログイン処理、ログインしているかどうかの チェック処理、つまりは認証を自動化してくれる機能がLaravelにはあります。 |