路由¶

zanphp框架的url组成规则为:

  1. scheme://host:port/route/controller/action?query

url组成中的path由route/controller/action组成,controller如需要访问src/Controller/Index/IndexController下的index方法,则对应的url为

  1. scheme://host:port/index/index/index?query

此外,zan框架设置了提供了设置默认路由的配置文件,路径为resource/config/share/route.php,各环境公用此配置文件。配置示例为:

  1. <?php
  2.  
  3. return [
  4. 'default_route' => '/index',
  5. 'default_controller' => 'index',
  6. 'default_action' => 'index',
  7. 'default_format' => 'html',
  8. ];

default_format指定返回页面的content-type字段,default_format与content-type之间的映射关系为:

  1. 'html' => 'text/html',
  2. 'txt' => 'text/plain',
  3. 'js' => 'application/javascript',
  4. 'css' => 'text/css',
  5. 'json' => 'application/json',
  6. 'xml' => 'text/xml',
  7. 'rdf' => 'application/rdf+xml',
  8. 'atom' => 'application/atom+xml',
  9. 'rss' => 'application/rss+xml',
  10. 'form' => 'application/x-www-form-urlencoded'

自定义路由¶

为满足不同业务开发的路由需求,zanphp框架支持自定义路由,只需要实现Zan\Framework\Network\Http\Routing\IRouter接口即可快速实现。

  1. interface IRouter
  2. {
  3. /*
  4. * @return array ['module', 'controller', 'action']
  5. */
  6. public function dispatch(Request $request);
  7. }

为了与现有的路由文件组织形式保持一致,自定义路由需要返回Module-Controller-Action用于定位路由文件,其中,module/controller确定Controller文件位置,action为controller的方法。业务可以结合自身需要将Restful Router、FastRouter等集成至zan框架中。

自定义实现的路由需要配置至框架中,修改resource/config/share/route.php配置文件,增加router_class选项,配置示例为:

  1. <?php
  2.  
  3. return [
  4. 'default_route' => '/index',
  5. 'default_controller' => 'index',
  6. 'default_action' => 'index',
  7. 'default_format' => 'html',
  8. 'router_class' => '/namespace/router_class' //完整的类名称
  9. ];

原文: http://zanphpdoc.zanphp.io/MVC/route.html