路由¶
zanphp框架的url组成规则为:
- scheme://host:port/route/controller/action?query
url组成中的path由route/controller/action组成,controller如需要访问src/Controller/Index/IndexController下的index方法,则对应的url为
- scheme://host:port/index/index/index?query
此外,zan框架设置了提供了设置默认路由的配置文件,路径为resource/config/share/route.php,各环境公用此配置文件。配置示例为:
- <?php
- return [
- 'default_route' => '/index',
- 'default_controller' => 'index',
- 'default_action' => 'index',
- 'default_format' => 'html',
- ];
default_format指定返回页面的content-type字段,default_format与content-type之间的映射关系为:
- 'html' => 'text/html',
- 'txt' => 'text/plain',
- 'js' => 'application/javascript',
- 'css' => 'text/css',
- 'json' => 'application/json',
- 'xml' => 'text/xml',
- 'rdf' => 'application/rdf+xml',
- 'atom' => 'application/atom+xml',
- 'rss' => 'application/rss+xml',
- 'form' => 'application/x-www-form-urlencoded'
自定义路由¶
为满足不同业务开发的路由需求,zanphp框架支持自定义路由,只需要实现Zan\Framework\Network\Http\Routing\IRouter接口即可快速实现。
- interface IRouter
- {
- /*
- * @return array ['module', 'controller', 'action']
- */
- public function dispatch(Request $request);
- }
为了与现有的路由文件组织形式保持一致,自定义路由需要返回Module-Controller-Action用于定位路由文件,其中,module/controller确定Controller文件位置,action为controller的方法。业务可以结合自身需要将Restful Router、FastRouter等集成至zan框架中。
自定义实现的路由需要配置至框架中,修改resource/config/share/route.php配置文件,增加router_class选项,配置示例为:
- <?php
- return [
- 'default_route' => '/index',
- 'default_controller' => 'index',
- 'default_action' => 'index',
- 'default_format' => 'html',
- 'router_class' => '/namespace/router_class' //完整的类名称
- ];