Laravel
Laravel は、MVCのWebアプリケーション開発用の自由かつオープンソースのPHPで書かれたWebアプリケーションフレームワークである。様々なコミュニティのコンポーネントを使用しており、特にSymfonyは9つのコンポートを利用するなど重要な基盤となっている。LaravelはMITライセンスの下でリリースされており、そのソースコードはGitHubにホスティングされている。マイクロソフトの.NETの開発に関わっていたTaylor Otwell が開発し、Taylorを中心としたコミュニティーが活発な開発を続けている。
2022年2月現在、GitHubでのスター獲得数がPHP, Ruby, Python等のバックエンド系プログラミング言語のフレームワーク中で最も多いなど、人気のフレームワークの1つとなっている 。
2023年2月14日、Laravel Newsにおいて、バージョン10がリリースされたことが発表された。
今後は約12ヶ月毎にバージョンアップを行い、Symfonyのリリースの2ヶ月後を目途にLaravelのリリースも行われる予定となっている。
特徴[編集]
主要なWebアプリケーションフレームワークの中では後発のフレームワークであるLaravelのバージョン1は2011年6月にリリースされた。バージョン1のリリース後、バージョン2(2011年11月)バージョン3(2012年2月)と早いペースでリリースされた後、バージョン4(2013年5月)ではコードがゼロベースから書き直され、当時スタンダードになりつつあったパッケージ管理システムのComposerを採用し、PHPの歴史のあるフレームワークであるSymfonyのコンポーネントを利用するなど、抜本的な変更が行われた。 2015年2月にリリースされたバージョン5.0はもともとバージョン4.3としてリリースが予定されていたところ、変更点が大きいということでメジャーバージョンアップ扱いになった経緯がある。 コミュニティーの活発な活動を背景に、1年に1度以上のメジャーバージョンアップがあり、またマイナーバージョンアップでも繰り返し機能追加等が行われている。セキュリティフィックスの期限も比較的短期間であるために、Laravelで作られたWebアプリケーションは常に最新のバージョンに対応していく必要がある。バージョン5.5やバージョン6はLTS(Long Term Support)となっており、これらはセキュリティフィックスの期限が3年間となっていたため、LTSのバージョンを利用するユーザは他のバージョンから比較して多かった。しかし、当初LTSの予定だったバージョン9はLTSではなくなり、またバージョン10もLTSではなかったため、利用するユーザはEOLまでに今後リリースされる新しいバージョンへ対応していく必要がある。
LaravelはフルスタックのWebアプリケーションフレームワークであり、ルーティング、リエクスト処理、ビュー、クエリビルダー、ORM(オブジェクト関係マッピング)、DI(依存性の注入)、認証等のユーザ管理、ユニットテスト、ブラウザテスト等、現代的なフレームワークが要求される一通りの機能を実装している。またコンソールからArtisanコマンド(Ruby on Railsのrailsコマンドに相当)を利用することにより、コントローラやビューの雛形の作成、データベーススキーマの作成等、一通りの作業を行うことができる。また、ユーザのオリジナルのArtisanコマンドを作成したり、コントローラ等の通常のコード内からArtisanコマンドを呼び出すといったこともできる。
バージョン[編集]
バージョン | リリース時期 | サポート | 必要PHPバージョン |
---|---|---|---|
1 | 2011年6月 | ||
2 | 2011年11月 | ||
3 | 2012年2月 | ||
4.0 | 2013年5月 | 5.3以上 | |
4.1 | 2013年12月 | 5.3以上 | |
4.2 | 2014年6月 | 5.4以上 | |
5.0 | 2015年2月 | 5.4以上 | |
5.1 | 2015年9月 | LTS | 5.5.9以上 |
5.2 | 2015年12月 | 5.5.9以上 | |
5.3 | 2016年8月 | 5.6.4以上 | |
5.4 | 2017年1月 | 5.6.4以上 | |
5.5 | 2017年8月 | LTS | 7.0以上 |
5.6 | 2018年2月 | 7.1.3以上 | |
5.7 | 2018年9月 | 7.1.3以上 | |
5.8 | 2019年2月 | 7.1.3以上 | |
6 | 2019年9月 | LTS | 7.2以上 |
7 | 2020年3月 | 7.2.5以上 | |
8 | 2020年9月 | 7.3以上 | |
9 | 2022年2月 | 8以上 | |
10 | 2023年2月 | 8.1以上 | |
11 | 2024年1月(リリース予定) |
- LTS(Long Term Support) のリリースはバグフィックスが2年間、セキュリティフィックスは3年間
- LTSではない通常のリリースはバグフィックスが18ヵ月、セキュリティフィックスは2年間
- バージョン6より、セマンティックバージョニングを採用したため、バージョンナンバーのインクリメントはバージョン5系の時代と大きく異なる。
バージョン | Laravel 1 | Laravel 2 | Laravel 3 | Laravel 4 |
---|---|---|---|---|
認証(Auth) | ○ | ○ | ○ | ○ |
キャッシュ | ○ | ○ | ○ | ○ |
Eloquent | ○ | ○ | ○ | ○ |
MySQL | ○ | ○ | ○ | ○ |
PostgreSQL | ○ | ○ | ○ | ○ |
SQLite | ○ | ○ | ○ | ○ |
SQLServer | - | - | ○ | ○ |
マイグレーション | - | - | ○ | ○ |
IoCコンテナ | - | ○ | ○ | ○ |
Config | ○ | ○ | ○ | ○ |
Formヘルパー | ○ | ○ | ○ | ○ |
HTMLヘルパー | ○ | ○ | ○ | ○ |
URLヘルパー | ○ | ○ | ○ | ○ |
ルーティング | ○ | ○ | ○ | ○ |
コントローラー | - | ○ | ○ | ○ |
モデル | ○ | ○ | ○ | ○ |
ビュー | ○ | ○ | ○ | ○ |
モデル間のリレーションシップ | - | ○ | ○ | ○ |
リダイレクト | ○ | ○ | ○ | ○ |
レスポンス | ○ | ○ | ○ | ○ |
String(文字列)ヘルプ関数 | ○ | ○ | ○ | ○ |
バリデーション | - | ○ | ○ | ○ |
ユニットテスト | - | - | ○ | ○ |
Bladeテンプレートエンジン | - | - | ○ | ○ |
DB Seeding | - | - | - | ○ |
キュー | - | - | - | ○ |
メール | - | - | - | ○ |
ファサード(Facade) | - | - | - | ○ |
コマンドライン(CLI) | - | - | ○ | ○ |
拡張性 | モジュールライブラリ | モジュールライブラリ | バンドルライブラリ | Composerパッケージ |
Laravel 4 | Laravel 5 |
---|---|
app/commands | app/Console |
app/config | config |
app/controllers | app/Http/Controllers |
app/database | database |
app/lang | resources/lang |
app/models | app |
app/start | 無し |
app/storage | storage |
app/tests | tests |
app/views | resources/views |
app/filters.php | 廃止(app/Providers/FilterServiceProviderに定義) |
app/routes.php | app/Http/routes.php(5.2以降はapp/routes/api.phpに定義) |
app/database/production.sqlite | storage/database.sqlite(ファイルはないので自分で作る必要あり) |
他のWebアプリケーションフレームワークとの比較と動向[編集]
- バックエンドのフレームワークにおいて、PHPのLaravel、PythonのDjango、RubyのRuby on Railsが3大バックエンドフレームワークと見なされることもある。
- Stack Overflowの質問数でも他のPHPのWebアプリケーションフレームワークがシェアを落とす中、Laravelはシェアを上げており、事実上のPHPのWebアプリケーションフレームワークのデファクトスタンダードと言える状態になっている。
- Laravelはベンチマークにおいて他の主要なPHPのWebアプリケーションフレームワークと比較した際、時間あたりのリクエストの処理数は少なく、メモリ使用量は多めである傾向がある。
カンファレンス[編集]
Laraconは Laravelのコンベンション(カンファレンス)のことである。様々なスポンサーの追加支援を受けたUserScapeによって大規模にオーガナイズ化されて開かれている。
日付 | 会場 |
---|---|
2013年2月22–23日 | ワシントンD.C. |
2013年8月30–31日 | アムステルダム |
2014年5月15–16日 | ニューヨーク |
2014年8月28–30日 | アムステルダム |
2015年8月11–12日 | ケンタッキー州ルイビル |
2015年8月25–26日 | アムステルダム |
2016年7月27–29日 | ケンタッキー州ルイビル |
2016年8月23–24日 | アムステルダム |
2017年3月8日 | オンライン |
2017年7月25–26日 | ニューヨーク |
2017年8月28–30日 | アムステルダム |
2018年2月7日 | オンライン |
2018年7月25-26日 | シカゴ |
2019年3月6日 | オンライン |
2019年7月24-25日 | ニューヨーク(PLAYSTATION THEATER タイムズスクエア) |
2020年2月26日 | オンライン |
2020年3月21日 | 東京(2020年2月21日、新型コロナウイルス感染症(COVID-19)により中止) |
2020年8月26日 | オンライン |
2021年3月17日 | オンライン |
2021年9月1日 | オンライン |
2022年2月9日 | オンライン |
ライセンス[編集]
LaravelはMITライセンスの下にライセンスされているオープンソースのソフトウェアである。すなわち、Laravelを誰でも自由・無制限に扱って良い。ただし、著作権表示および本許諾表示をLaravelのすべての複製または重要な部分に記載しなければならない。作者または著作権者は、ソフトウェアに関して一切の責任を負わない。
名前の由来[編集]
Laravelの名前は『ナルニア国物語』に登場するナルニア国の王都、ケア・パラベルにちなむ。
関連するフレームワーク[編集]
Laravelを軽量化したマイクロフレームワークとして、Lumenがある。