Laravelの特長
ポートフォリオをPHP×Laravelで以前作成したのですが、改めてLaravelについてどのような特徴があるか調べました。
Laravelとは
LaravelはPHP用のWebフレームワークです。
2012年にリリースされた、既存のフレームワークと比較して若いフレームワークです。
これはSymfonyをベースとしたフレームワークで、GitHubではPHPフレームワークの中で最も多くのスターを獲得している人気のフレームワークです。
Laravelの特長
MVCフレームワーク
LaravelはMVCフレームワークと呼ばれ、アプリケーションをModel, View, Controllerに分けて扱います。
MVCという概念はWebアプリを作成するうえで欠かせない概念となっており、Laravelを利用することでこのMVCについても学ぶことができます。
学習コストが低い
Laravelの人気の理由の一つとして、習得のしやすさが挙げられます。Laravelはコードや仕組みが分かりやすくなっておりプログラミング初学者に対して非常に習得しやすいです。(動的型付け言語のフレームワークが初心者向けかどうかは別として)
私自身、今まで基本的にJavaを中心にやってきており動的型付け言語は馴染みがありませんでしたが、比較的わかりやすく簡単なブログシステムであれば1か月で作成できました。(先人のチュートリアルのおかげでもありますが。。。)
他にもユニットテストを行うために多くの機能も提供されているとのこと
(まだPHPUnitなどは作成した経験がないですが、、、)
ComposerとSymfonyの導入
序盤に触れましたが、LaravelはベースがSymfornyです。長年実績のあるSymfonyの強化版であるため、非常に堅牢であるということが言えます。
また、Laravelに関するインストールはComposerを使います。
指揮者みたいなロゴですが、ComposerはLaravelに関するソフトなどをのパッケージ管理ツールでありPHP標準ともいえるツールでほぼ必須です。
ORMやBladeテンプレート
データベースアクセスにORM(Object-Relational Mapping) を使います。
ORマッパーとも言いますが、PHPのオブジェクトをSQLなど意識する必要なく取得・更新することができます。
ただ、やはりSQLとは勝手が違うので慣れるまで少し時間が掛かるかもしれません。(私は結構躓きました。)
また、画面描写の役割を果たすviewとしてBladeテンプレートというのが利用されます。
このBladeと呼ばれるテンプレートエンジンのおかげで複雑なデザインもわかりやすくすっきりと記述できます。
Laravel以外のフレームワーク
Laravel以外のも主要なものだけでも以下のフレームワークがあります。
- CakePHP・・・2005年にリリース、Laravelの次に人気か
- Symfony・・・2005年登場の老舗フレームワーク、Laravelのベースにもなっている。
- Zend Framework・・・2005年に登場、Zend Technologies Ltdによって開発
- Yii・・・2008年にリリース、中国や東欧などで利用
各フレームワークの需要
某サイトでの求人数別に調べました。
求人件数はLaravelがダントツ一位ですね。やはり学習コストの低さや参入障壁の低さがあるのでしょう。
次点がCakePHPですが、このフレームワークはRuby on Railsの影響を受けており国内で高い人気を誇っています。ただ、世界的にはやや人気が下がり気味です。これはRuby on Railsも同様です。
Laravel最新版について
Laravelですが、毎年2月と8月の半年ごとにメジャーなリリースが行われます。
2019年9月にLaravel 6.xがリリースされ、5.x以前と比べてやや仕様の変更が発生しています。
例えば、過去記事で触れている通りログイン機能が異なっておりコマンド一つで作れなくなったりしています。
Laravel6.xと5.xのログイン機能が違う
5.x系と同じ感覚で使うとたまに痛い目を見ます。
なお、現在の最新は6.6ですが、これはマイナーバージョンアップであり使用感に大きな影響はないようです。※5.x以前はバージョンの考え方が違うのでよく検討しましょう。例えば5.7と5.8はメジャーバージョンと同じくらい差があります。
今後のLaravel
Laravelというフレームワークは堅牢なフレームワークであり多種多様の業務で利用されています。今後も新しいフレームワークが登場するまでは継続した人気を得ると思われます。
ただ、PHP自体の人気が現在落ち着きを見せ始めており今後は緩やかに利用数は減少していくと思います。ただ、やはり使いやすさや学習コストはぴか一ですので動的型付け言語など(最近のPHPは静的型付けもできるようになってきましたが)初めて触るものとしては非常にお勧めです。
参考
掌田津耶乃さん著書:PHPフレームワーク Laravel入門