= SimframeとリクエストURL =
Simframeでは、URLを元に、ControllerとActionが自動的に決まります。
これは、config/routes.phpに記述されている内容によって決まります。
このルール付けと、振り分けをしてくれるのが、SMapです。
デフォルトでは、次のような内容になっています。
{{{
SMap::connect('/:controller/:action/:id');
SMap::connect('/:controller/:action');
SMap::connect('/:controller',array('action'=>'index'));
SMap::connect('/',array('controller'=>'top','action'=>'index'));
}}}
例えば、!http://example.com/ にリクエストがあると、最後のルールにマッチするため、そのときは、controllerは、top,actionは、indexが実行されることになります。
topという名前が気に入らない場合は、別の名前にしても構いませんので、 routes.phpファイルを修正してください。
他にも、簡単な例を挙げると、次のようになります。
* !http://example.com/blog/entry/entry-XXX => {controller=>blog,action=>entry,id=>entry-XXX}
* !http://example.com/blog/entries => {controller=>blog,action=>entries}
* !http://example.com/blog => {controller=>blog,action=>index}
* !http://example.com/blog/etnry/entry-XXX/comments => 該当するルールなし(エラーとして扱われる)
自分のルールを定義することももちろん可能なので、自由に設定してみてください。
URLを決める際に、ルールは、上に書かれたものから評価され、途中でマッチすると、以降は評価されないので、
優先度を上げたいものは、 上に書くようにしてください。
自分の書いたルール付けが正しいかどうか、判断するには、別のファイルでroutes.phpを読み込んで、次のように書き込んで、コマンドラインから実行してください。
{{{
include("routes.php");
print_r(SMap::parse("/uri/hoge/huga"));
}}}
[wiki:Documentation 戻る]