39
Symfony 2.5について 新機能とか変更点 @Issei_M

Symfony 2.5について

Embed Size (px)

Citation preview

Symfony 2.5について新機能とか変更点

@Issei_M

自己紹介

● Issei_M● 埼玉のベンチャーで働いています● Webとインフラと時々iOS● PHP歴:6年● Symfony歴:

○ 1.4:業務で3年ほど○ 2.x:趣味で2年、業務で3ヶ月

自己紹介

● Issei_M● 埼玉のベンチャーで働いています● Webとインフラと時々iOS● PHP歴:6年● Symfony歴:

○ 1.4:業務で3年ほど○ 2.x:趣味で2年、業務で3ヶ月

● LT初めて(←ここ重要)

● 2.3(LTS)から2度めのリリース● 2.4と同様、通常リリース

→8ヶ月のバグフィクス、14ヶ月のセキュリティ保守● 現在はBETA1、5月に正式リリース予定

Symfony 2.5の概要

フォーム周りの改善1. デバッグプロファイラの改善

2.4で追加されたフォームのプロファイラ

2.5からは...

2.5からは...

ツリーが開閉可能に(しかも状態を記憶してくれる)

エラーの有無がわかりやすくなった

特にこれ

エラーの原因が明確に!

例えばこんな時

2.4:フォームに無いフィールドでバリデーションエラーが起きると分かりづらい(validation_groupsミスった時)

2.5からはエラーのパスが表示される

本フォームとは関係ないフィールドのエラーがマップされているのが分かる!

フォーム周りの改善2. FormInterface::getErrors() の改善

2.4以前

2.5からはオプションが2つ追加された

よくあるフォーム

クラス図

ルート(普通はここだけ変数に入れて使う)

エラー時

エラーは大体末端のフォームにセットされる(単一選択は除く)

全部のエラーを1つの配列にまとめたくなったら...?

ルート(普通はここだけ変数に入れて使う)

2.4以前ではこんな感じで再帰的に処理しないといけないのでちょっと面倒

2.5からは第1引数を true にすれば一発!

※返り値が配列からFormErrorIteratorに変わっている点だけ注意!

配列を引数に取る関数やメソッドにそのまま渡すとエラーになる!

iterator_to_array で変換すること!

新しく追加されたコマンド

translation:debug

指定したバンドル&ロケールの対応状況が一目で分かる。

config:debug

指定したバンドルの現在のコンフィギュレーションをダンプできる。

yaml:lint

指定したYAMLファイルのSyntaxチェック。ディレクトリやバンドル名を渡すと一括チェックも可能。

その他、細々とした改善のご紹介

未定義メソッドを実行した時のエラー

未定義メソッドを実行した時のエラー

もしかしてコレ...?

Controller::createAccessDeniedException()

HttpKernelのAccessDeniedHttpExceptionをスローする人が多いので追加されたのだとか。正しくはSecurityコンポーネントのAccessDeniedException。

Questionヘルパー(Console)

実行者に入力を求めることができる

Questionヘルパー(Console)

実行例

KernelTestCase

WebTestCaseから::createClientを除いただけ。Commandのテストとかに使おう!

その他にもバリデータの追加など改善点多数!

ありがとうございました!