使用 Zend
Framework Routing (Zend\Mvc\Router\RouteStack),如何添加模块来支持用户配置文件页面。
但我也想让它通过支持根目录中的其他页面/模块,如 /rss
或 /search/asdf
. 这是我的第一个猜测,没有运气...
'ZendMvcRouterRouteStack' => array(
'parameters' => array(
'routes' => array(
'default' => array(
'type' => 'ZendMvcRouterHttpSegment',
'options' => array(
'route' => '/[:username[/:action]]',
'constraints' => array(
'username' => '[a-zA-Z][a-zA-Z0-9_-]*',
'action' => '[a-zA-Z][a-zA-Z0-9_-]*',
),
'defaults' => array(
'controller' => 'ApplicationControllerUserController',
'action' => 'index',
),
),
),
网址示例...
- https://github.com/weierophinney
- https://github.com/weierophinney/following
想
通了。 在路由树的最末尾使用了 Zend\Mvc\Router\Http\Regex 匹配...
'user' => array(
'type' => 'ZendMvcRouterHttpRegex',
'options' => array(
'regex' => '/(?<id>[a-zA-Z0-9_-]+)',
'defaults' => array(
'controller' => 'ApplicationControllerIndexController',
'action' => 'user',
),
'spec' => '/%id%',
),
),
'user-schedule' => array(
'type' => 'ZendMvcRouterHttpRegex',
'options' => array(
'regex' => '/(?<id>[a-zA-Z0-9_-]+)/schedule',
'defaults' => array(
'controller' => 'ApplicationControllerIndexController',
'action' => 'schedule',
),
'spec' => '/%id%/schedule',
),
),