codelego / phpfox-router
phpfox框架的Router库
dev-master
2016-11-29 10:44 UTC
This package is not auto-updated.
Last update: 2024-09-28 19:52:48 UTC
README
=====================================
添加简单路由
return [ 'router.routes' => [ 'home' => [ 'route' => '/', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ], ], 'members' => [ 'route' => 'members', 'defaults' => [ 'controller' => AdminIndexController::class, 'action' => 'index', ], ], ], ];
使用(/<...>)进行隐式选项
return [ 'router.routes' => [ 'event_action' => [ 'route' => '/blogs/browse(/<sort>)', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'browse', 'sort' => 'recents' ], ], ], ];
向模式wheres添加条件
return [ 'router.routes' => [ 'blog_action' => [ 'route' => '/blog/<id>/<action>', 'wheres'=>[ 'id'=>'\d+', 'action'=>(edit|delete|view|upgrade|settings) ], 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ], ], ], ];
创建过滤器
return [ 'router.filters' => [ '@profile' => [null, ProfileNameFilter::class], ], ];
将过滤器应用到路由
'filter' => '@profile',
return[ 'router.routes' => [ 'profile/members' => [ 'route' => '<name>/{members}', 'filter' => '@profile', 'defaults' => [ 'controller' => Controller\IndexController::class, 'action' => 'index', ], ], ], ];
您可以使用[filter1, filter2,...]添加单个或多个过滤器,所有过滤器都将被遍历,如果路由通过了所有过滤器规则,则结果为true。
翻译
翻译的短语必须在构建RoutingManager之前应用。
- 在"$root/config/local.config.php"中编辑短语
- 翻译的短语不得包含空白或特殊字符。
- 请注意,翻译的短语不应与同一上下文中的其他短语重复。
return [ 'router.phrases' => [ '{admincp}' => 'admincp', '{blog}'=>'bài-viết', '{members}=>'thành-viên', ], ];
获取URL
service('routing')->getUrl('profile/members', ['name'=>'codelego']); // origin "codelego/members" // translated "codelego/thành-viên" if {member} is configured to "thành-viên".
环境参数
示例
posts/en/policy posts/vi/policy
带有"en"或"vi"将根据当前成员的区域设置添加,但您不需要在每次调用getUrl()时都放置$locale。最简单的方法是使用EnvironmentParams。