zabachok/yii2-onion-url

用于创建类似github的URL的URL规则类。

安装: 25

依赖项: 0

建议者: 0

安全: 0

星标: 0

关注者: 1

分支: 0

开放问题: 0

类型:yii2-extension

dev-master 2019-03-14 11:24 UTC

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',
            ],
        ],
    ],
],