Dive into symfony with Event Dispatcher Katsuhiro OGAWA also known as fivestar Symfony Components symfonyから独立し、様々なドメインに特化したコンポーネント群 YAMLパーサー DIコンテナ テンプレートエンジン このあと詳しく話します Symfony 2 secret weapon YAML Dependency Injection Request Handler Event Dispatcher Templating symfony 1.2では が使われています YAML Event Dispatcher 5つのコンポーネントは Symfony 2で特に重要となります Request Handler以外の コンポーネントは 既に公開されています Event Dispatcher Facilitating communication between PHP classes クラス間のコミュニケーションツール ご清聴ありがとうございました Katsuhiro OGAWA http://d.hatena.ne.jp/Fivestar/ Thanks, イベントとは symfonyの内部には様々なイベントが用意されています application.log application.throw_exception component.method_not_found response.filter_content template.filter_parameters user.change_culture ログの通知 - ログファイルへの書き込みなど 例外が捕捉されなかった時 sfComponent::__call() レスポンス内容のフィルタリング - WebDebugToolber テンプレートレンダリング時に 渡す変数のフィルタリング - $sf_requestや$sf_userなど Cultureの切り替え - sfI18NのCultureの変更 イベントハンドリング sfEvent sfEventDispatcher イベントリスナー イベントオブジェクト 登録されているイベントリスナーにイベントを通知 sfEventを第1引数に受け取るメソッド テンプレートに$sf_requestや$sf_userを 設定する処理の実際の流れ sfViewParameter::toArray() sfEventDispatcher Event Dispatcherにtemplate.filter_parametersイベントを通知して値をフィルタリングする フィルタリングした値をイベントからgetReturnValue()メソッドで取得 new sfEvent() filterTemplateParameters() return $parameters getReturnValue() sfContext::initialize() template.filter_parametersイベントが通知されたときに $this->filterTemplateParameters()を呼び出して、テンプレートパラメータに sf_requestやsf_userなどをセットする symfony platforms Asial Corporation 1.1 <= 2.0 2.0 sfRequestにisMobileメソッドを追加する プラグインを作成する MyMobile イベントタイプ notify notifyUntil filter 登録されているリスナーすべてにイベントを通知 いずれかのリスナーがtrueを返すまでイベントを通知 すべてのリスナーにイベントを通知し、 1つの値に対してフィルタリングをおこなう $request
More presentations by
Popular presentations
What is Prezi, really? And how to create a really good one?
Adam Somlai-Fischer on
Keynote talk at Login 2011 conference in Vilnius for 3000+ audience
More popular prezis in Explore>