路由基本规则

路由分三层:module,controller,action

module层定义,允许的module name值和默认值:

//参见:\Prjconfig::route_config
const route_config=
[
	'route_module_list'=>
	[
		'foreground',
		'admin',
		'skel',
		'cloud'
	],
	'route_defaultmodule'=>'foreground',
];

访问:http://xxx.com/xxx/yyy
对应的:
module:foreground
controller:xxx
action:yyy

访问:http://xxx.com/admin/xxx/yyy
对应的:
module:admin
controller:xxx
action:yyy

访问:http://xxx.com/xxx/yyy/aaa/bbb/ccc/ddd
等同于:http://xxx.com/xxx/yyy?aaa=bbb&ccc=ddd

访问:http://xxx.com/xxx/yyy.html
等同于:http://xxx.com/xxx/yyy
.html是伪静态扩展名,路由会把最后的.xxx忽略掉

路由转换

//参见:\Prjconfig::route_pathconvert
//会把/article/111 转换为/article/article/id/111
static function route_pathconvert($path)
{

	$matchs=[];

	if(preg_match('/^\/article\/(\d+)$/',$path,$matchs))
	{
		$path='/article/article/id/'.$matchs[1];
	}

	return $path;

}

URL生成

参见 url_build , url_build_static 函数