Laravel
Laravel は、MVCのWebアプリケーション開発用の自由かつオープンソースのPHPで書かれたWebアプリケーションフレームワークである。様々なコミュニティのコンポーネントを使用しており、特にSymfonyは9つのコンポートを利用するなど重要な基盤となっている。LaravelはMITライセンスの下でリリースされており、そのソースコードはGitHubにホスティングされている[3]。マイクロソフトの.NETの開発に関わっていたTaylor Otwell が開発し、Taylorを中心としたコミュニティーが活発な開発を続けている[4]。
開発元 | Taylor Otwell |
---|---|
初版 | 2011年6月[1] |
最新版 |
11.x.x[2]
/ 2024年3月12日 |
リポジトリ | |
プログラミング 言語 | PHP |
対応OS | クロスプラットフォーム |
サポート状況 | Active |
種別 | Webアプリケーションフレームワーク |
ライセンス | MIT License |
公式サイト |
laravel |
2023年12月現在、GitHubでのスター獲得数がPHP, Ruby, Python等のバックエンド系プログラミング言語のフレームワーク中で最も多いなど、人気のフレームワークの1つとなっている[5] [6]。
2024年3月12日、laravel.comにおいて、バージョン11がリリースされたことが発表された[7]。
今後も約12ヶ月毎にバージョンアップを行い、Symfonyのリリースの2ヶ月後を目途にLaravelのリリースも行われる予定となっている[8]。
特徴
編集主要なWebアプリケーションフレームワークの中では後発のフレームワークであるLaravelのバージョン1は2011年6月にリリースされた。バージョン1のリリース後、バージョン2(2011年11月)バージョン3(2012年2月)と早いペースでリリースされた後、バージョン4(2013年5月)ではコードがゼロベースから書き直され、当時スタンダードになりつつあったパッケージ管理システムのComposerを採用し、PHPの歴史のあるフレームワークであるSymfonyのコンポーネントを利用するなど、抜本的な変更が行われた。[9] 2015年2月にリリースされたバージョン5.0はもともとバージョン4.3としてリリースが予定されていたところ、変更点が大きいということでメジャーバージョンアップ扱いになった経緯がある。[9] コミュニティーの活発な活動を背景に、1年に1度以上のメジャーバージョンアップがあり、またマイナーバージョンアップでも繰り返し機能追加等が行われている。セキュリティフィックスの期限も比較的短期間であるために、Laravelで作られたWebアプリケーションは常に最新のバージョンに対応していく必要がある。バージョン5.5やバージョン6はLTS(Long Term Support)となっており、これらはセキュリティフィックスの期限が3年間となっていたため、LTSのバージョンを利用するユーザは他のバージョンから比較して多かった[10]。しかし、当初LTSの予定だったバージョン9はLTSではなくなり、またバージョン10もLTSではなかったため、利用するユーザはEOLまでに今後リリースされる新しいバージョンへ対応していく必要がある。
LaravelはフルスタックのWebアプリケーションフレームワークであり、ルーティング、リエクスト処理、ビュー、クエリビルダー、ORM(オブジェクト関係マッピング)、DI(依存性の注入)、認証等のユーザ管理、ユニットテスト、ブラウザテスト等、現代的なフレームワークが要求される一通りの機能を実装している。またコンソールからArtisanコマンド(Ruby on Railsのrailsコマンドに相当)を利用することにより、コントローラやビューの雛形の作成、データベーススキーマの作成等、一通りの作業を行うことができる。また、ユーザのオリジナルのArtisanコマンドを作成したり、コントローラ等の通常のコード内からArtisanコマンドを呼び出すといったこともできる。
バージョン
編集バージョン | リリース時期 | サポート | 必要PHPバージョン |
---|---|---|---|
1 | 2011年6月[1] | ||
2 | 2011年11月[1] | ||
3 | 2012年2月[1] | ||
4.0 | 2013年5月[1] | 5.3以上[11] | |
4.1 | 2013年12月 | 5.3以上[12] | |
4.2 | 2014年6月 | 5.4以上[13] | |
5.0 | 2015年2月 | 5.4以上 [14] | |
5.1 | 2015年9月 | LTS | 5.5.9以上 [15] |
5.2 | 2015年12月 | 5.5.9以上 [16] | |
5.3 | 2016年8月 | 5.6.4以上 [17] | |
5.4 | 2017年1月 | 5.6.4以上 [18] | |
5.5 | 2017年8月[19] | LTS | 7.0以上 [20] |
5.6 | 2018年2月[21] | 7.1.3以上 [22] | |
5.7 | 2018年9月[23] | 7.1.3以上 [24] | |
5.8 | 2019年2月[25] | 7.1.3以上 [26] | |
6 | 2019年9月[27] | LTS | 7.2以上 [28] |
7 | 2020年3月[29] | 7.2.5以上[30] | |
8 | 2020年9月[31] | 7.3以上[32] | |
9 | 2022年2月[33] | 8以上[34] | |
10 | 2023年2月[33] | 8.1以上[35] | |
11 | 2024年3月[36] | 8.2以上[37] |
- LTS(Long Term Support) のリリースはバグフィックスが2年間、セキュリティフィックスは3年間
- LTSではない通常のリリースはバグフィックスが18ヵ月、セキュリティフィックスは2年間[38]
- バージョン6より、セマンティックバージョニング[39]を採用したため、バージョンナンバーのインクリメントはバージョン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大バックエンドフレームワークと見なされることもある[42]。
- Stack Overflowの質問数でも他のPHPのWebアプリケーションフレームワークがシェアを落とす中、Laravelはシェアを上げており、事実上のPHPのWebアプリケーションフレームワークのデファクトスタンダードと言える状態になっている。[43]
- Laravelはベンチマークにおいて他の主要なPHPのWebアプリケーションフレームワークと比較した際、時間あたりのリクエストの処理数は少なく、メモリ使用量は多めである傾向がある[44][45][46][47]。
カンファレンス
編集Laraconは Laravelのコンベンション(カンファレンス)のことである[48]。様々なスポンサーの追加支援を受けたUserScape[49]によって大規模にオーガナイズ化されて開かれている[50][51][52]。
日付 | 会場 |
---|---|
2013年2月22–23日 | ワシントンD.C. |
2013年8月30–31日[53] | アムステルダム |
2014年5月15–16日 | ニューヨーク |
2014年8月28–30日[54] | アムステルダム |
2015年8月11–12日[55] | ケンタッキー州ルイビル |
2015年8月25–26日[56] | アムステルダム |
2016年7月27–29日[57] | ケンタッキー州ルイビル |
2016年8月23–24日[58] | アムステルダム |
2017年3月8日[59] | オンライン |
2017年7月25–26日[60] | ニューヨーク |
2017年8月28–30日[61][62] | アムステルダム |
2018年2月7日[63] | オンライン |
2018年7月25-26日[64] | シカゴ |
2019年3月6日[65] | オンライン |
2019年7月24-25日[66] | ニューヨーク(PLAYSTATION THEATER タイムズスクエア) |
2020年2月26日[67] | オンライン |
2020年3月21日[68] | 東京(2020年2月21日、新型コロナウイルス感染症(COVID-19)により中止)[69] |
2020年8月26日[70] | オンライン |
2021年3月17日[71] | オンライン |
2021年9月1日[72] | オンライン |
2022年2月9日[73] | オンライン |
2023年7月19-20日[74] | ナッシュビル |
2024年2月5-6日[75] | アムステルダム |
ライセンス
編集LaravelはMITライセンス[76]の下にライセンスされているオープンソースのソフトウェアである[77]。すなわち、Laravelを誰でも自由・無制限に扱って良い。ただし、著作権表示および本許諾表示をLaravelのすべての複製または重要な部分に記載しなければならない。作者または著作権者は、ソフトウェアに関して一切の責任を負わない。
名前の由来
編集関連するフレームワーク
編集Laravelを軽量化したマイクロフレームワークとして、Lumenがある。[79]
関連項目
編集脚注
編集- ^ a b c d e f Maks Surguy (2013年7月27日). “History of Laravel PHP framework, Eloquence emerging” (英語). maxoffsky.com. 2014年2月23日閲覧。
- ^ “Laravel 11 Now Available”. blog.laravel.com (2024年3月12日). 2024年3月13日閲覧。
- ^ Daniel Gafitescu (2013年6月6日). “Goodbye CodeIgniter, Hello Laravel”. sitepoint.com. 2013年12月21日閲覧。
- ^ “LaravelはポストCodeIgniterの最有力候補なのか”. 2014年2月23日閲覧。
- ^ “これでスッキリわかる!最新PHPのフレームワーク7選!” (2017年3月16日). 2017年5月19日閲覧。
- ^ “Framework” (2019年2月27日). 2019年2月27日閲覧。
- ^ “Laravel 11 Now Available” (英語). The Laravel Blog. 2024年3月13日閲覧。
- ^ “Laravel 9 is Now Released!” (英語). Laravel News. 2022年2月9日閲覧。
- ^ a b Matt Stauffer『Laravel Up & Running Second Edition』O'Reilly Media、p.4
- ^ “Laravel jp”. Laravel jp. 2019年7月25日閲覧。
- ^ “laravel/framework v4.1.0” (英語). Packagist. 2018年3月28日閲覧。
- ^ “laravel/framework v4.2.0” (英語). Packagist. 2018年3月28日閲覧。
- ^ “laravel/framework v4.3.0” (英語). Packagist. 2018年3月28日閲覧。
- ^ “laravel/framework v5.0.0” (英語). Packagist. 2018年3月28日閲覧。
- ^ “laravel/framework v5.1.0” (英語). Packagist. 2018年3月28日閲覧。
- ^ “laravel/framework v5.2.0” (英語). Packagist. 2018年3月28日閲覧。
- ^ “laravel/framework v5.3.0” (英語). Packagist. 2018年3月28日閲覧。
- ^ “laravel/framework v5.4.0” (英語). Packagist. 2018年3月28日閲覧。
- ^ Paul Redmond (2017年8月30日). “Laravel 5.5 LTS is Now Released” (英語). Laravel News. 2017年11月7日閲覧。
- ^ “laravel/framework v5.5.0” (英語). Laravel News. 2018年3月28日閲覧。
- ^ Paul Redmond (2018年2月7日). “Laravel 5.6 is Live, Here’s What’s New!” (英語). Laravel News. 2018年2月9日閲覧。
- ^ “laravel/framework v5.6.0” (英語). Laravel News. 2018年3月28日閲覧。
- ^ Eric L. Barnes (2018年9月4日). “Laravel 5.7 is now released!” (英語). Laravel News. 2018年9月4日閲覧。
- ^ “laravel/framework v5.7.0” (英語). Laravel News. 2018年9月5日閲覧。
- ^ PAUL REDMOND (2019年2月26日). “Laravel 5.8 is released” (英語). Laravel News. 2019年2月27日閲覧。
- ^ “laravel/framework v5.8.0” (英語). Packagist. 2019年2月27日閲覧。
- ^ “Laravel 6 Is Now Released” (英語). Laravel News (2019年9月3日). 2019-09-3author=PAUL REDMOND閲覧。
- ^ “laravel/framework/framework”. 2019年9月3日閲覧。
- ^ “Laravel 7 Is Now Released” (英語). Laravel News (2020年3月3日). 2020-03-03 author=ERIC L. BARNES閲覧。
- ^ “laravel/framework - Packagist”. packagist.org. 2020年9月10日閲覧。
- ^ “Laravel 8 is Now Released!” (英語). Laravel News (2020年9月8日). 2020年9月9日閲覧。
- ^ “laravel/framework - Packagist”. packagist.org. 2021年7月12日閲覧。
- ^ a b “Laravelバージョン”. Laravel Versions. 2023年2月15日閲覧。
- ^ “laravel/framework - Packagist”. packagist.org. 2021年7月12日閲覧。
- ^ “laravel/framework - Packagist”. packagist.org. 2022年11月18日閲覧。
- ^ “Laravel 11 Now Available” (英語). The Laravel Blog. 2024年3月13日閲覧。
- ^ “laravel/framework” (英語). packagist.org. 2024年3月13日閲覧。
- ^ “Release Notes - Laravel - The PHP Framework For Web Artisans”. laravel.com. 2021年10月20日閲覧。
- ^ “セマンティック バージョニング 2.0.0” (jp). 2019年11月14日閲覧。
- ^ Laravel 5 はこう変わる! ディレクトリ構造編
- ^ Laravel 5.0.dev リリースノート
- ^ “どれ使うべき?3大WebフレームワークRails・Django・Laravelを徹底比較してみた”. hatenablog. 2020年1月16日閲覧。
- ^ “Stack Overflow Trends”. stackoverflow. 2020年1月16日閲覧。
- ^ “PHP Web Framework Benchmark 2019”. Qiita. 2020年1月16日閲覧。
- ^ “php-framework-benchmark”. Github. 2020年1月16日閲覧。
- ^ “Web Framework Benchmarks”. TechEmpower. 2020年1月21日閲覧。
- ^ “PHP Benchmarks”. InfoDroid. 2020年1月21日閲覧。
- ^ Laravelの紹介
- ^ Userscape | Home
- ^ “Laravel wiki”. laravel.io. 2014年1月2日閲覧。[リンク切れ]
- ^ “Laracon EU 2013”. laracon.eu. 2014年1月2日閲覧。
- ^ “Userscape home page”. userscape.com. 2014年1月2日閲覧。
- ^ “Laracon EU 2013”. laracon.eu. 1月2日2014年閲覧。
- ^ “Laracon EU 2014”. laracon.eu. 8月30日2014年閲覧。
- ^ “Laracon 2015 will be in Louisville KY”. laravel-news.com (1月15日2015年). 7月9日2015年閲覧。
- ^ “Laracon EU 2015”. laracon.eu. 7月9日2015年閲覧。
- ^ Eric L. Barnes (1月6日2016年). “Laracon tickets are now on sale”. laravel-news.com. 1月7日2016年閲覧。
- ^ Eric L. Barnes (1月7日2016年). “Laracon EU tickets on sale”. laravel-news.com. 4月7日2016年閲覧。
- ^ “Announcing Laracon Online” (英語). Laravel News. (2017年2月6日) 2017年3月24日閲覧。
- ^ “Laracon 2017 – Location and dates have been announced” (英語). Laravel News. (2016年11月9日) 2017年3月24日閲覧。
- ^ WebEngineers. “Announcing Laracon EU 2017 the official European Laravel conference.” (英語). Laracon EU 2017 2017年3月24日閲覧。
- ^ “Laracon EU 2017 is Announced” (英語). Laravel News. (2017年1月16日) 2017年3月24日閲覧。
- ^ Eric L. Barnes (2017年10月25日). “Announcing Laracon Online 2018” (英語). Laravel News. 2017年11月7日閲覧。
- ^ “Laracon 2018” (英語). Laravel LLC. (2018年7月25日). 2018年9月4日閲覧。
- ^ “Announcing Laracon Online 2019” (英語). Laravel News (2019年3月6日). 2019年2月25日閲覧。
- ^ “Laracon Ⅶ” (英語). Laravel LLC. (2018年7月24日). 2019年2月25日閲覧。
- ^ “Laracon Online 2020 The official worldwide Laravel online conference” (英語) (2020年2月12日). 2020年2月12日閲覧。
- ^ “Laravel JP Conference 2020”. Laravel JP Conference 実行委員会 (2020年2月12日). 2020年2月12日閲覧。
- ^ “Laravel JP Conference 2020”. Laravel JP Conference 実行委員会 (2020年2月21日). 2020年2月25日閲覧。
- ^ “Laracon Online | The official Laravel online conference” (英語). Laracon Online | The official Laravel online conference. 2020年9月9日閲覧。
- ^ “[https://laravel-news.com/announcing-laracon-online-2021 Announcing Laracon Online 2021 NEWS]”. 2021年2月26日閲覧。
- ^ “Laracon Online Summer 2021” (英語). Laravel News. 2021年9月2日閲覧。
- ^ “Laracon is this week!” (英語). Laravel News. 2022年2月8日閲覧。
- ^ “Laracon 2023” (英語). laracon.us. 2023年12月22日閲覧。
- ^ “Laracon EU 2024” (英語). laracon.eu. 2023年12月22日閲覧。
- ^ The MIT License (MIT)
- ^ Laravel PHP Framework
- ^ taylorotwellのツイート(339196313155563520)
- ^ Lumen - PHP Micro-Framework By Laravel