Laravelの紹介
(追記:この記事は2012-12-14に書かれたもので、かなり古いです。メジャーバージョンは4へ上がりました。)
アメリカとイギリスで人気爆発中、ヨーロッパにもじわじわ広がっている、PHPフレームワーク「Laravel」の紹介です。
Laravelとは
Laravelは最初、Taylorc Otwell氏が趣味として作成したフレームワークでした。その出来の良さからすぐにスポンサーが付き、コミュニティーの支援を受け、一年足らずで大きく発展したプロジェクトです。
特徴は、「コードが読みやすく、書きやすい」ことです。一般的にPHPフレームワーク使用者はPHPの読みにくさに慣れてしまっています。開発者のTaylor氏は.NETの開発者という前歴を持ち、コードが読みづらくなることを当然と考えませんでした。そこで可読性を高め、かつ学習も容易なフレームワークを作成しました。
現在はLaravel3.2がリリースされています。また、Laravel4も開発中で、ベータ公開前のアルファ版であるにも関わらず、注目を集めています。正式リリースは来年を目指しています。
コミュニティーも活発で、来年2013年には、コンベンションがアメリカのワシントンD.C.で開かれます。開発してから、わずか一年でここまで大きくなりました。このLaraconにスポンサーが11社付きました。小さな会社ばかりですが、チュートリアルで有名なnettuts+も参加しています。有名チューターのJeffey Way氏もLaravelを気に入り、レクチャラーとしても参加します。更に、githubもスポンサーとして参加しています。勢いのあるPHPフレームワークです。
このLaravelは以下のような特徴を備えています。
学習が用意
シンプルなマイクロフレームワークよりも、学習は容易かも知れません。必要最小限で無駄なものを省き、シンプルにしながらも、全体的なコンセプトは分かりやすさで統一・設計されたフレームワークです。
無名関数を使用したルーティング
最近、これは多くのフレームワークで採用されてきています。小さなWebアプリや機能のテストにわざわざ、コントローラークラスを用意する必要はありません。ルーティングを記述するroutes.phpファイルだけで、定義が済みます。
強力なルーティングフィルター
ルートを実行する前後に、フィルターを指定できます。前に実行するフィルターはそのルートを実行して良いかを判定するために使用します。後に実行するフィルターはレスポンスの内容を確認したり、変更したりするために使用します。特に前に使用するフィルーターにより、ルートの正当性のチェックをコントローラーから分離できます。デフォルトでは、csrfに対するフィルターと、組み込み認証のフィルターが用意されています。しかし、いくらでも自分のフィルターを追加できます。
分かりやすく、使いやすいEloquent ORM
ORMは便利ですが、通常ちょっとした事をやるにもフィールドを列記したりと、使い勝手がよくありません。Eloquentはシンプルに使用でき、フィールドをいちいち記述することもありません。リレーションの記述も単純明快です。
とても柔軟なオートローダー
オートローダーはとても柔軟です。多くのライブラリーを取り込むことができます。
簡単なペジネーション
ペジネーションはとても簡単です。ORMやアクティブ・レコードと結びついており、シンプルなペジネーションは数行のコードで実現可能です。
ビューをサポートするコンポーサー
特定のビューを表示する直前に実行するコードをビューコンポーサーとして登録できます。これにより、ビューの表示に毎回係る部分をコントローラーから分離できます。例えば、私はどのページからも使用するビューの共通部分に対して、コンポーサーを使用しています。これにより、ビュー表示前にいつもメッセージの処理を書かなくてはならない手間を省いています。
簡単明白なメソッド名
メソッド名には簡単な英単語が選ばれています。英語の苦手な方でも、覚えやすいですよ。
なにか参考にできる?
はい。以下のサイトがお役に立つでしょう。(追記:既にメジャーバージョンが上がっているため、Githubのリポジトリーは削除しました。)
- Laravel公式ドキュメント(英語)
- Laravel API(英語)
- Laravelフォーラム(英語)
- Laravel Tutorials Series コア開発者の一人、Dayle Rees氏によるチュートリアルです。内容は多少古いです。
- Laravel公式ドキュメント(日本語) 公式ドキュメントを私が個人で翻訳したものです。
- Laravel API(日本語) コアのコメントを翻訳し、公式APIと同様にApiGenを使用し、生成しました。
- Laravel API2(日本語) 同様に、PHPDocumentor2を使用し、生成しました。
- 開発ベース32 私が作成したコードで恐縮ですが、全くゼロから学習するよりは、楽だと思います。サンプルです。
Laravel日本語版の翻訳に関して、川田 陽介様から金銭的援助をいただきました。ありがとうございました。
また、電子書籍も何冊か出版されています。(Laravel4関連の書籍は、たくさん翻訳しました。レベルに合わせ、お読みいただけるかと思います。http://kore1server.com/210)
- Code Happy(英語) Dayle Rees氏によるチュートリアル本です。上記英語チュートリアルサイトの内容の最新版です。
- Code Happy(日本語) Dayleさんの依頼により、日本語に翻訳しました。
- Laravel公式ドキュメント3 ドキュメント日本語版を電子書籍で販売しています。
Code Happyの日本語版と公式ドキュメントの電子書籍版は、当サイトの維持に役立たせて頂いております。