Laravel4.1、新機能の紹介

Tags : Laravel4  

元記事はこれです。

http://markvaneijk.com/whats-new-and-upcoming-in-laravel-4-1

この記事では全部は紹介されていないようです。大まかなポイントを押さえてあります。原文の内容とは関係なく、項目だけ紹介します。

多対多のリレーションにポリモーフィズム

今存在するポリモーフィズムと同じようなものを多対多のリレーションでできるようにするものらしいですが、細かく見ていないため、現状とどう異なるのか分かりません。

Remoteクラス

要はSSH接続のパッケージのラッパークラスです。これで、デプロイしたり、接続してログを確認したりできるようになります。

そして、もちろんアプリから直接SSH接続できるようになります。

高度なデプロイ作業を行うRocketeerというLaravel4のパッケージがすでにあります。デプロイで高度なことを行いたい方は、4.1になれば直ぐに簡単に使えます。

Packagistから各自でパッケージ拾ってきても事足りますが、それだとパッケージ数も増えちゃうんで、公式で用意しましょうというところでしょうか。

リレーションを条件にした絞り込み:whereHasメソッド

リレーション先の条件で、親のレコードを絞り込むwhereHasメソッドが追加されます。

例で紹介されているのは:

Post::whereHas('comments.user_id', '=', 1)->get();

ポストに関連付けられているコメントのレコードで、ユーザーのIDが1のものを持っているポストのみが選択されます。ややこしい?そうですね。:D

上記のサンプルコードを読んで理解するほうが、ずっと簡単です。:D

Eloquentモデルの横断何とか…

理解するのが面倒なので。:D 最近、Eloquentをいじっていないので、何が現状問題で、何が改善策なのか把握できていません。

最終的に、Eloquentのコレクションで、使用できるfetchやmergeメソッドで解決できることだけ分かりました。それで、ドキュメントにコレクションに関する部分が増筆されたのでしょう。

新しいArtisanコマンド

artisan tailは、ログを見るためのコマンドです。tailはLinux/Unix系のコマンドではお馴染み、ファイルの最後の方を表示するコマンドですね。ログの最新情報を表示する戸いう意味で、tailでしょう。

ただ、ローカルで見るだけでなく、リモート環境のログも簡単に見られるようになるのがポイントです。前述のRemoteクラスを活用しているはずです。

このために、日付ごとにログを分けるのは廃止されます。今後、ログファイルは一つだけになります。

artisan tinkerはリアルタイムのシェルです。例えば、このコマンドを実行し、var_dump(Config::get('app'));とタイプすれば、設定ファイルapp.phpの内容が表示されます。

キャッシュのタグ

すでにセクションはありますが、タグが使えるようになるようです。キャッシュオブジェクトにタグを付け、それを元にフラッシュを行えるようになるとのこと。

キューの優先度

キューに優先度を付けられるようになります。

Redisキュードライバー

読んだ限り、キュードライバーとしてRedisを使用できるようになるようです。

ちなみに、GitHubとか、Packagistを探せば、色々なキューサービスの追加ドライバーやらパッケージやらが有志達の手により用意されいるようです。

ルートのスピード

ルートの処理のスピードが2倍になるそうです。もともと、そんなに遅くはなかったと思いますが、遅いというツイートもあったので、それは解消されるでしょう。

依存していたパッケージの変更によるものですが、副作用として必要なパッケージのボリュームが減ります。

アップデートが簡単?

アップデートが簡単だとTaylorが言っていたと書かれていますが、たぶんこれは4.0がリリースされた直後のことかと思われます。

今のところ、4.1へのアップデートは、すでに書いているような変更を行わなくてはなりません。そんなにたいした手間ではありません。

いつリリースされるか

ツイートされていますが、あと数週間ということです。今までの経験から言って、28日か29日辺りを狙ってくるのではないでしょうか。

もしくはドキュメントが間に合わなくて、12月に入るか…:D