勉強会が初めてだったんですが、大幅に変わった起動シーケンスにびっくりして、さらにその素直なシーケンスに大変感動しました。いうわけで、今日はsymfony1とSymfony2の起動シーケンスの違いを簡単に比較したいと思います。以下のようになっています。false);sfContext::createInstance($configuration)->dispatch();流れとしては以下のようなものになっています。その中では、リクエストパラメータからモジュール名とアクションが決定されるという形になります。以下のようなものです。}その後決定されたモジュール/アクションに応じてフィルターの構築が行われ、フィルター実行の一環としてアクションが実行されるというものでした。(この流れですが、symfony1の元となったMojaviの流れとあまり変わりません。以下のようになっています。Request())->send();Symfony2ではHttpKernelInterfaceを実装したクラスがベースの処理を受け持ちます。これはHTTPのシーケンスを素直にマッピングしたようなものになっており、上記のファイルの最後のメソッドも以下のように読むことができます。以下のような処理です。*ゆっくりにあるようにDIContainerの初期化を実行しています(詳しくはそちらをご覧ください)。}ここでも親クラスのhandleの処理結果のレスポンスを返すという素直な実装になってます。そのhandleは以下のようになっています。}で、BaseHttpKernel#handleRawは以下のようになってます。}処理されるControllerを決定しているのは「$this->resolver->getController($request)」になります。(メインのControllerをcall_user_func_arrayで実行しているというのは軽く衝撃をうけました)リクエストを受け取って、処理した結果のレスポンスを出力するというとっても素直な流れというのはわかりやすいですし、またこのわかりやすい流れはフレームワーク本体にがっちり組み込まれているわけではなく、FrameworkBundleという外部部品を使用して構成されているという作りにも拡張性の高さを感じます。Symfony2はMojavi→symfonyという流れをいったん断ち切って全く新しいものとなっています。っぽいコードになれていればさらさら読めると思います。イイなと思った小さなtipsから内部構造まで迫った解説などをブログ記事にして公開していくイベントです。2010に追加リクエストを送信ください。2010チーム一同、あなたの参加をお待ちしております。2010はsymfony好きな有志で集まったチームです。ブログを報告するスターをつけました引用をストックしましたストック一覧を見る閉じる引用するにはまずログインしてくださいログイン閉じる引用をストックできませんでした。再度お試しください閉じる限定公開記事のため引用できません。