Laravelの紹介

タグ: Laravel3   PHP  

(追記:この記事は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日本語版の翻訳に関して、川田 陽介様から金銭的援助をいただきました。ありがとうございました。

また、電子書籍も何冊か出版されています。(Laravel4関連の書籍は、たくさん翻訳しました。レベルに合わせ、お読みいただけるかと思います。http://kore1server.com/210

Code Happyの日本語版と公式ドキュメントの電子書籍版は、当サイトの維持に役立たせて頂いております。