Laravel

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動先: 案内検索
Laravel
LaravelLogo.png
開発元 Taylor Otwell
初版 2012年2月(5年前) (2012-02[1]
最新版 5.3.8[2] / 2016年9月9日(6か月前) (2016-09-09
リポジトリ github.com/laravel/framework
プログラミング言語 PHP
対応OS クロスプラットフォーム
サポート状況 Active
種別 Webアプリケーションフレームワーク
ライセンス MIT License
公式サイト laravel.com
テンプレートを表示

Laravel は、MVCWebアプリケーション開発用の無料・オープンソースPHPで書かれたWebアプリケーションフレームワークである。LaravelはMITライセンスの下でリリースされており、そのソースコードGitHubホスティングされている[3][4]マイクロソフト.NETの開発に関わっていたTaylor Otwell が開発した[5]
PHPフレームワークのに2013年12月の人気調査によると、Laravelは2014年における最も有望なPHPフレームワークの1つとして挙げられた[6]
LaravelはPHP 5.3以上を対象とする新しいプロジェクトである[7]

特徴[編集]

Laravelの主要な設計ポイントとして挙げられる特徴は下記の通りである[8]

  • バンドル」は、Laravelのモジュールパッキングシステムである。 Laravelバンドルリポジトリーは、アプリケーションへ簡単に機能を付け加えられるように、予め用意されている。バンドルリポジトリーからbundlesディレクトリーダウンロードしたり、"Artisan"コマンドラインツールを使い、自動的にインストールすることもできる。
  • 「Eloquent ORM」は、データベースオブジェクト間のリレーションシップに制約を適用する内部メソッド(eagerローディング等)を提供するアクティブレコードを実装している。 EloquentはLaravelのクエリービルダーである「Fluent」のメソッドを完全にサポートしている。
  • 「アプリケーションロジック」をコントローラーでアプリケーションに実装することもできる。また、Sinatraフレームワークと似たようなシンタックスを使い、ルートの定義を直接記述することもできる。
  • 「リバースルーティング」で名前付きのルートにリンクを作成できる。 リンクを作成するときにルートの名前を使えば、Laravelは自動的に正しいURIを挿入する。 これを使うことにより、後ほどルートを変更しても、Laravelがサイト中のリンク全部を適切に更新する。
  • RESTfulリソースコントローラー」はGETとPOSTに応答するロジックを分ける別の方法を提供する。例えば、ログインにおいて、コントローラーのget_login()アクションでフォームを担当させ、コントローラーのpost_login()アクションで、送信されたフォームを受け取り、バリデーションし、エラーメッセージと一緒にログインフォームにリダイレクトさせたり、各ユーザーのダッシュボードにリダイレクトさせたりすることもできる。
  • 「クラスのオートローディング」はオートローディングの環境設定を保つ手間を省き、使用していない不要なコンポーネントまでロードしてしまうことを防ぐことが出来る。
  • 「ビューコンポーザー」はビューがロードされた時点で実行されるコードブロックである。例として、ブログのサイドナビに見られる、投稿をランダムにリスト表示するものが挙げられる。コンポーザーは必要のあるブログポストを全てロードするロジックで構成してくれる為、ビューをロードすれば、表示する準備は全て予め済んでいる状態となる。これにより、メソッドのページコンテンツに関連する、ビューのモジュールで使用するデータのロードを、全てのコントローラー側で確実に行わなくてはならない手間を省くことができる。
  • 「IoC (Inversion of Control)コンテナ」は新しいオブジェクトを生成するメソッドを提供し、随意にインスタンスを生成したり、シングルトンでの使用をできるようにするものである。IoCにより、外部ライブラリーの使用準備を行う必要性を大幅に減らしてくれる。また、きっちりと決まった柔軟性のないファイル構造に係わる必要はなく、IoCを使用したオブジェクトにはコードのどこからでもアクセスできる。
  • 「マイグレーション(移行)」はスキーマのバージョンコントロールで、Laravelに直接統合されている。生成も実行も"Artisan"コマンドラインユーティリティーを使用して行うことが出来る。例えば、チームによる開発中に、他のメンバーがスキーマを変更したら、リポジトリーからコピーをローカル環境に置き、マイグレーションを実行すれば、自分のデータベースもアップデートされる。
  • ユニットテスト」は、Laravelは重要視している。新しい変更が予期せず他の部分を壊していないか確認する為に、何百ものユニットテストを行なっている。ユーザー自身も"Artisan"コマンドユーティリティーを使ってテストを実行できる。
  • 「自動パジネーション(改ページ)」は、"paginate"を呼び出し、ビュー内のページリンクを出力箇所を指定すれば、自動的に残りのページがパジネーションされる。パジネーションシステムは、簡単に手動/自動の切り替え等の設定・変更ができるように設計されている。
  • LaravelはComposerでのインストールを推奨している(パッケージ自体が存在しない)。

バージョン[編集]

バージョン リリース時期
Laravel 1 2011年6月
Laravel 2 2011年11月
Laravel 3 2012年2月
Laravel 4 2013年5月
Laravel 5 2015年2月[9]
バージョン別機能比較 (Laravel 1 to 4)[10]
バージョン Laravel 1 Laravel 2 Laravel 3 Laravel 4
認証(Auth)
キャッシュ
Eloquent
MySQL
PostgreSQL
SQlite
SQLServer - -
マイグレーション - -
IoCコンテナ -
Config
Formヘルパー
HTMLヘルパー
URLヘルパー
ルーティング
コントローラー -
モデル
ビュー
モデル間のリレーションシップ -
リダイレクト
レスポンス
String(文字列)ヘルプ関数
バリデーション -
ユニットテスト - -
Bladeテンプレートエンジン - -
DB Seeding - - -
キュー[11] - - -
メール[12] - - -
ファサード(Facade)[13] - - -
コマンドライン(CLI) - -
拡張性 モジュールライブラリ モジュールライブラリ バンドルライブラリ Composerパッケージ
Laravel 4 と Laravel 5 のディレクトリ構造の違い[14][15]
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(ファイルはないので自分で作る必要あり)

他のPHPアプリケーションフレームワークとの比較と動向[編集]

  • Laravelは、他の主要なPHPアプリケーションフレームワークと比べて、ベンチマークでのテスト時の速度が遅かったというデータがある[16]
  • Eloquent ORM・Redisサーバーの利用やクラスのオートロードなど、Laravelは先進的な機能を持っている[5]
  • ドキュメントの充実に力を入れている[5]
  • CodeIgniterがバージョン 3.0 においてGPLと互換性のない「Open Software License (“OSL”)」を採用した為、コミュニティの反発を買っており、英語圏ではCodeIgniterからLaravelにユーザーが流れる動きが進んでいることが見られる[7]。その後、CodeIgniter 3.0はMITライセンスに改められた[17]
  • CodeIgniterからFuelPHPに移行したユーザーもいるが、CodeIgniterやLaravelには数が及ばない[7]。ただし、日本では2013年時点でLaravelを引き離しCodeIgniterに匹敵するほど人気がある[16]
  • CakePHPは、世界的にはCodeIgniterと並ぶ人気であり、日本においては圧倒的人気である[16]
  • Yiiは、日本では人気がないが、世界的にはCodeIgniterやCakePHPに次ぐ大きなシェアを占めている[16]。しかし、アメリカでのGoogleの検索数は、Laravelが追い抜くだろうと予想される状態である[18]

カンファレンス[編集]

Laraconは Laravelのコンベンション(カンファレンス)のことである[19]。様々なスポンサーの追加支援を受けたUserScape[20]によって大規模にオーガナイズ化されて開かれている[21][22][23]

Laracon開催スケジュール
日付 会場
1. 2013年2月22-23日  ワシントンD.C.
2. 2013年8月30-31日[24]  アムステルダム
3. 2014年5月15-16日  ニューヨーク
4. 2014年8月28-30日[25]  アムステルダム
5. 2015年8月11-12日[26]  ケンタッキー州ルイビル
6. 2015年8月25-26日[27]  アムステルダム

ライセンス[編集]

LaravelはMITライセンス[28]の下にライセンスされているオープンソースのソフトウェアである[29]。すなわち、Laravelを誰でも無償で無制限に扱って良い。ただし、著作権表示および本許諾表示をLaravelのすべての複製または重要な部分に記載しなければならない。作者または著作権者は、ソフトウェアに関して一切の責任を負わない。

名前の由来[編集]

Laravelの名前は『ナルニア国物語』に登場するナルニア国の王都、ケア・パラベルにちなむ[30]

関連項目[編集]

脚注[編集]

[ヘルプ]
  1. ^ Release v3.0.0: resolving merge conflicts”. laravel/laravel. github.com (2012年2月). 2014年2月14日閲覧。
  2. ^ Laravel 5.3.8 is released with new fakes for events, jobs, mail, and notifications - Laravel News” (2016年9月9日). 2016年9月28日閲覧。
  3. ^ Laravel Documentation”. utexas.edu. 2013年12月17日閲覧。
  4. ^ Daniel Gafitescu (2013年6月6日). “Goodbye CodeIgniter, Hello Laravel”. sitepoint.com. 2013年12月21日閲覧。
  5. ^ a b c LaravelはポストCodeIgniterの最有力候補なのか”. 2014年2月23日閲覧。
  6. ^ Bruno Skvorc (2013年12月28日). “Best PHP Frameworks for 2014”. sitepoint.com. 2014年1月2日閲覧。
  7. ^ a b c 2013年において注目すべき PHP フレームワークは Laravel”. 2014年2月23日閲覧。
  8. ^ Laravelドキュメント
  9. ^ Laravel5.0がリリースされました。”. WinRoadのLaravel初心者講座. 2015年8月16日閲覧。
  10. ^ History of Laravel PHP framework, Eloquence emerging”. maxoffsky.com. 2014年2月23日閲覧。
  11. ^ キュー
  12. ^ メール
  13. ^ ファサード
  14. ^ Laravel 5 はこう変わる! ディレクトリ構造編
  15. ^ Laravel 5.0.dev リリースノート
  16. ^ a b c d PHPフレームワークのベンチマーク比較と2013年のトレンド”. 2014年2月23日閲覧。
  17. ^ CodeIgniter 3 Will be Released Under the MIT License”. 2015年11月19日閲覧。
  18. ^ Laravel、2013年からの将来性”. 2014年2月23日閲覧。
  19. ^ Laravelの紹介
  20. ^ Userscape | Home
  21. ^ Laravel wiki”. laravel.io. 2014年1月2日閲覧。
  22. ^ Laracon EU 2013”. laracon.eu. 2014年1月2日閲覧。
  23. ^ Userscape home page”. userscape.com. 2014年1月2日閲覧。
  24. ^ Laracon EU 2013”. 2014年1月2日閲覧。
  25. ^ Laracon EU 2014”. 2014年8月30日閲覧。
  26. ^ Laracon 2015 will be in Louisville KY” (2015年1月15日). 2015年7月9日閲覧。
  27. ^ Laracon EU 2015”. 2015年7月9日閲覧。
  28. ^ The MIT License (MIT)
  29. ^ Laravel PHP Framework
  30. ^ taylorotwellのツイート (339196313155563520)

外部リンク[編集]