Laravelのとくちょう
わきゃ
最近Laravelに触る機会ができたので、基本的なところをまとめたいと思います。
1. 学習コストが低い
Laravelの特徴として、学習コストが低いことが挙げられます。
その特徴として、 ファサード
を使用することで、PHPのスタティックなクラスメソッドを呼び出すように各機能を使用することができます。
Laravel 5.5 ファサード
Laravelのファサードはすべて、Illuminate\Support\Facades
名前空間下で定義されているので。
使いたいときは use Illuminate\Support\Facades\Cache;
のようにuseで指定して使うようですね。
ファサードを使用するときの注意点としては、ファサードを使用しすぎてクラスの肥大化しないように気をつけること。クラスの責任範囲を小さくするようにファサードを使用しすぎない。
2. symfonyベース
Laravelはsymfonyベースで作られています。
symfonyのコアはModel View Controller(MVC)フレームワークである Mojavi、オブジェクトリレーショナルマッピング (ORM) である Propel、そして Ruby on Rails のテンプレートヘルパーなどがベースとなっています。
3. 多機能
Laravelはフルスタックフレームワークであり、様々な機能を持っています。
ルーティングやコントローラー、ビュー、ORMなどの基本機能の他に、認証機能、UT (ユニットテスト)、などの応用的な機能も備えています。
4. 積極的なバージョンアップ
Laravelは積極的なバージョンアップを常に行っています。
現時点では半年ごとにマイナーリリースが行われています。PHPのフレームワークの中では早めのリリースサイクルを保っています。そのため、2年毎にLTS(長期サポート版)がリリースされます。
最近 (2019/09/11) ではLaravel6のリリースが発表されました。
https://laravel-news.com/laravel-6
5. 高い拡張性
Laravelではディレクトリ構成に高い拡張性を備えています。ディレクトリ構成は開発者が自由に決めることができます。そのためMVCパターン、ADR、レイヤードアーキテクチャ等の様々なアーキテクチャを採用することができます。
逆に言えば、自由なディレクトリ構造をできるので、ディレクトリの管理ができなくなりやすいのかなとも思います。
phpのフレームワークでCakePHPがありますが、そちらはLaravelとは逆にディレクトリ構成を規約で縛ることにより、崩れにくいディレクトリ管理をすることができます。