symfonyでHTTPリクエストパラメーターがsfWebRequestオブジェクトに渡されるところのメモ
<?php // cache/frontend/dev/config/config_factories.yml.php $class = sfConfig::get('sf_factory_routing', 'sfPatternRouting'); $cache = null; $this->factories['routing'] = new $class($this->dispatcher, $cache, array_merge(array('auto_shutdown' => false, 'context' => $this->factories['request']->getRequestContext()), sfConfig::get('sf_factory_routing_parameters', array ( 'load_configuration' => true, 'suffix' => '', 'default_module' => 'default', 'default_action' => 'index', 'debug' => '1', 'logging' => '1', 'generate_shortest_url' => true, 'extra_parameters_as_query_string' => true, 'cache' => NULL, )))); if ($parameters = $this->factories['routing']->parse($this->factories['request']->getPathInfo())) { $this->factories['request']->addRequestParameters($parameters); }
この部分でルーティングのパース結果(sfPatterRouting#parse)の戻り値を使ってaddRequestParametersを呼び出して、リクエストオブジェクトにパラメーターを設定しています。
# parseはルーティングのマッチング処理も行います。
ちなみにこのfactories.yml.phpというファイルはsymfonyの中で最も重要なファイルだと私は思うのですが、cacheの中にあります。
symfonyのソースを読み始めたころ、このファイルの存在にしばらく気づかなかったので、何がどこで処理されて動いているのかサッパリ分かりませんでした・・・。