zabachok / yii2-onion-url
用于创建类似github的URL的URL规则类。
dev-master
2019-03-14 11:24 UTC
Requires
- yiisoft/yii2: *
This package is auto-updated.
Last update: 2024-09-11 16:36:08 UTC
README
用于创建类似github的URL的URL规则类。
层级
Uri由三层组成,类似于ogre :)
第一层是用户名。例如:zabachok
第二层是项目名。例如:toolka
第三层是自由路由。例如:task/108
所有层都收集在uri中的一行中
第一层:/zabachok
第二层:/zabachok/toolka
第三层:/zabachok/toolka/task/108
您可以对每一层独立地进行路由。
配置
将规则部分添加到UrlManager配置中
[ 'class' => zabachok\onionUrl\UrlRule::class, 'provider' => YourProvider::class, 'userRoute' => 'user/view', 'projectRoute' => 'project/view', 'rules' => [ 'settings' => 'project/settings', 'tasks' => 'task/index', 'task/<id:\d+>' => 'task/view', 'task/<id:\d+>/update' => 'task/update', ], ],
provider - 实现ProviderInterface的类。这是必须的,以便规则可以检查用户或项目是否存在。
userRoute - 第一层:字段包含用户页面路由。
projectRoute - 第二层:字段包含项目页面路由。
rules - 第三层:包含您自定义路由的数组。在此部分中,您可以使用标准的yii2路由。
完整的UrlManager配置示例
'urlManager' => [ 'cache' => YII_ENV_DEV ? false : 'cache', 'enablePrettyUrl' => true, 'showScriptName' => false, 'enableStrictParsing' => true, 'rules' => [ '' => 'site/index', 'login' => 'user/login', 'logout' => 'user/logout', [ 'class' => zabachok\onionUrl\UrlRule::class, 'provider' => YourProvider::class, 'userRoute' => 'user/view', 'projectRoute' => 'project/view', 'rules' => [ 'settings' => 'project/settings', 'tasks' => 'task/index', 'task/<id:\d+>' => 'task/view', 'task/<id:\d+>/update' => 'task/update', ], ], ], ],