symfony v1.1情報 vol.1

symfony 1.1のβリリースが近づいて来ました。ここでは少しずつversion 1.0.xからの変更点をお知らせしていきます。

第一回目はFlashについてです。

symfonyには「Flash」と呼ばれる機能があります。これはユーザーセッションの一種で「次の画面まで有効なユーザーセッション」を提供してくれるというものです。通常ユーザーセッションを使うとそのデータをいつ処分するのか、に困る事があります。消し忘れた影響でアプリケーションが誤動作したという事がある人も多いのではないでしょうか。Flash機能はユーザーが次の画面に遷移した後、symfonyが自動的に消してくれるためプログラマーがセッションの状態を管理する手間が少なくなり非常に便利です。

さて、このFlash機能。version 0.6で実装され1.0まではsfActionsクラスの祖先であるsfComponentクラスのメソッドでした。これが1.1ではsfUserクラスのメソッドに移動されます。これにより、アクション内に書くべきコードは以下のように変更されます。

 
// 1.0.x
$this->setFlash('session_name', 'value');
 
// 1.1
$this->getUser()->setFlash('session_name', 'value');

変更の意図としては「ユーザーセッションなのにどうしてActionに実装されているの?」ということでしょうか。

変更内容としてはかなり軽い物ですが、今まで作ったアプリケーションを1.1対応にしようと思うと、どうしてもそれなりの手間がかかります。と、思っていたらなんとこの記事を書いてる時に対応するためのタスクが追加されました。symfony 0.6から1.0への移行期にもお世話になったsymfony upgradeです。早速試してみました。symfony 1.1を使えるようにした環境で1.0で作られたプロジェクトディレクトリ内で以下のコマンドを叩きます。

 
./symfony project:upgrade1.1
>> flash     Migrating /var/projects/symfony.../testmodule/actions/actions.class.php

無事動作したようです。動作結果も問題ありませんでした。

今のところproject:upgrade1.1タスクはFlashの対応だけですが、今後開発が進むにつれ対応する部分も増えていくと思います。更新されたものについては、この場でお伝えしていこうと思います。

Leave a Reply

You must be logged in to post a comment.