dispatcher.php – $Route->parse【その弐】 (CakePHP解析 #8)
Tue, Jul 15, 2008今回は $Route->parseを更に解析する予定でしたが、正直何をしたいのかがいまいち分からない。どうやら$Routeオブジェクトの$routes配列にいろいろ突っ込んでいるようです。
一体どんな値を入れているのかだけ、出力して終了(>_<) CakePHPのよく理解している人なら見当がつくのかな。
Router Object ( [routes] => Array ( [0] => Array ( [0] => / [1] => /^[/]*$/ [2] => Array ( ) [3] => Array ( [controller] => schedules [action] => index ) ) [1] => Array ( [0] => /pages/* [1] => #^/pages(?:/(.*))?[/]*$# [2] => Array ( ) [3] => Array ( [controller] => pages [action] => display ) ) [2] => Array ( [0] => /tests [1] => #^/tests[/]*$# [2] => Array ( ) [3] => Array ( [controller] => tests [action] => index ) ) [3] => Array ( [0] => /bare/:controller/:action/* [1] => #^/bare(?:/([^/]+))?(?:/([^/]+))?(?:/(.*))?[/]*$# [2] => Array ( [0] => controller [1] => action ) [3] => Array ( [bare] => 1 ) ) [4] => Array ( [0] => /ajax/:controller/:action/* [1] => #^/ajax(?:/([^/]+))?(?:/([^/]+))?(?:/(.*))?[/]*$# [2] => Array ( [0] => controller [1] => action ) [3] => Array ( [bare] => 1 ) ) [5] => Array ( [0] => /:controller/:action/* (default) [1] => /^(?:/(?:([a-zA-Z0-9_-.;:]+)(?:/([a-zA-Z0-9_-.;:]+)(?:[/?](.*))?)?))[/]*$/ [2] => Array ( [0] => controller [1] => action ) [3] => Array ( ) ) ) [__admin] => [_log] => )
追記
$route配列をよくよく観察してみると、CakePHPの遷移処理を管理しているように見えますね。
下記の例だと
[0] => / [1] => /^[/]*$/ [2] => Array ( ) [3] => Array ( [controller] => schedules [action] => index )
おそらく[0]がルートパスを表していて、[1]が遷移に関する正規表現?、[2]はひとまず置いといて
[3]は実行するコントローラーとアクション。
[1]の正規表現は何を意味しているんだろう?
「/1*$/」にマッチするのって「/」とか「///」みたいに、ひたすらスラッシュの文字列だけのように思うんだけど。
もう少しCakePHP理解しないと、分からないかな。
- / [return]