symfony PHP5 framework 期待の新バージョン0.6が明日リリース予定です。
0.6になって何が変わるのかをwhat_s_new_0_6を元に抜粋してみます。
ダイナミックコンフィグレーション
動的にコンフィグレーションをいじれるようになりました。テストの時に便利かもしれません。
コンポネント
アクションをpartialの様にインクルードします。view.ymlを利用したslotよりも断然早く、ビューをインクルードするだけのpartialでは書きにくかった(データベース処理のような)複雑なコードを書きやすくなりました。
- partial(テンプレート)
- component(アクション)
- slot(コンフィグレーション)
と覚えておく良いかも。
アプリケーションディレクトリの変更
0.5系いぜんではアプリケーションディレクトリが
frontend/
backend/
の様にプロジェクトのルートに配置されるのが気持ち悪かったのですが、 0.6からappsディレクトリの下に移動しました。
apps/
frontend/
backend/
0.5のアプリケーションから0.6にアップグレードする場合は、ディレクトリを移動した後にアップグレードすればよいようです。
管理者用画面作成
今回の目玉です。これだけでも、0.6使いたくなりませんか?

上のような、かっこいいそして検索機能のついた管理画面を自動生成します。 ジェネレータに対する設定ファイルが使えるようになりました。すごすぎです。
複数のデータベースの利用
これが出来なくてセッションをデータベースに乗せるのに困りました。(結局セッションストレージにPropelを使わなかった)
プラグイン
Symfonyのサブプロダクトをプラグインとしてインストールできるようになりました。サードパーティ製のプラグインの配布が加速しそうです。
フラッシュパラメータ
次のリクエストにパラメータを引き継ぎたいのだけれど、User(セッション)を利用して以降のリクエストにまで引き継ぎたくないときに利用できるフラッシュパラメータが追加されました。
$this->setFlash('attrib', $value);
結果画面やフォームの確認画面を出すときに使えそうですね。
その他
sfFinder
ファイルやディレクトリの取得(検索)に便利なユーティリティが追加されました。
$files = sfFinder::type('file')->name('*.php')->size('<10K')->maxdepth(3)->in('/home/production/myproject');
Sandbox
Symfonyの開発環境をすばやく(10秒で!)作るためのものらしい。実態は不明。
Propel のコマンド名変更
0.4 command 0.6 command ------------------ ------------------ build-model propel-build-model build-sql propel-build-sql build-schema propel-build-schema insert-sql propel-insert-sql init-propelcrud propel-init-crud generate-propelcrud propel-generate-crudメンドクサクなりました。
邪推かもしれませんが、 sfPagerもsfPropelPagerに変わるなど、SymfonyはPropelをある程度切り離して他のアクティブレコードエンジンにも対応しようとしているのかもしれませんね。
Response object
sfWebResponseが追加され
$response->setHttpHeader()
とか
$response->setCookie()
使えるようになりました。 PHP関数のheaderを使うのはやめましょう。
Smart cache
テンプレートレベルでのキャッシュコントロールのパラメータが増えたらしい。多分、view.ymlに書くのだろうけど詳細不明。
アップグレード時の自動キャッシュクリア
国際化(i18n)、権限(credentials)、validateXXX()
0.4からへのプラスで0.5からはあまり変わらないようだ。
その他
バグ修正たくさん。
以上、検証も追いつかず、サイトの翻訳も出来ずトピックだけパパラッチの様に追いかけてみました。誤認識も多いと思いますのでこの週末にでも気づいた点は修正します。(お気づきの点はご指摘くださいませ)
総論として、Symfonyの0.6リリースは実用途からフィードバックを受けた新機能とこれからフレームワークを育てていく足場を提供する非常に大きな意味を持つものだという印象を受けました。今後も期待していきたいと思います。


>Sandbox trunk拾ってきて、bin/create_quickstart.sh 参照。 trunkからpearパッケージ作ってインストール。 アプリの生成まで自動でやってくれますお。 きもーい。
書き忘れ。 >>アップグレード フレームワークアップデートしたときは symfony upgrade 0.6 で、コンフィグの書き換えやバージョン管理下に置かれたファイルの再設置とかしてくれます。 >>SymfonyはPropelをある程度切り離して他のアクティブレコードエンジンにも対応しようとしているのかもしれませんね。 すでにpluginの中に、ezpdo対応が含まれてたりします。
Symfony 0.6 楽しみです。 ところで、素人な質問かもしれませんが「複数データベースが使えなくてセッションをのせられなかった」とは、どのような意味でしょうか?
”Symfony 0.6 is out!” http://www.symfony-project.com/ つきみやさんのところで指摘されていますが 週末どころかもう出ました。 >mshkさん セッションのデータベースは他のデータベースと分離したかったのですがそれが出来なかったという意味です。判りにくくてすいません。