承接 jzkf/yii2-rbac 相关项目开发

从需求分析到上线部署,全程专人跟进,保证项目质量与交付效率

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

jzkf/yii2-rbac

Composer 安装命令:

composer require jzkf/yii2-rbac

包简介

Yii2 RBAC Management and Access Control Module

README 文档

README

一个功能完整的 Yii2 RBAC(基于角色的访问控制)管理模块,提供权限管理、角色管理和权限校验功能。

安装

composer require jzkf/yii2-rbac

功能特性

  • 权限管理:完整的权限 CRUD 操作
  • 角色管理:完整的角色 CRUD 操作
  • 角色权限分配:为角色分配/移除权限,支持全选功能
  • 管理员管理:管理员的角色分配和用户管理
  • 自动权限扫描:自动扫描控制器并生成权限
  • 权限校验组件:提供 AccessControl 过滤器进行权限校验
  • 菜单助手:根据用户权限自动生成后台菜单
  • 可配置:支持自定义扫描路径、控制器名称映射等

快速开始

1. 在应用配置中注册模块

config/web.php 中添加:

'modules' => [
    'rbac' => [
        'class' => 'jzkf\rbac\Module',
        'scanPaths' => [
            '@app/controllers/backend',
        ],
        'controllerNames' => [
            'Post' => '文章',
            'Category' => '分类',
            // ... 更多映射
        ],
        'actionDescriptions' => [
            'index' => '列表',
            'create' => '创建',
            'update' => '更新',
            'delete' => '删除',
            // ... 更多映射
        ],
    ],
],

2. 配置全局访问控制

config/web.php 中添加:

'as access' => [
    'class' => 'jzkf\rbac\components\AccessControl',
    'allowActions' => [
        'site/*',           // 前台站点路由
        'debug/*',          // Debug 工具(开发环境)
        'gii/*',            // Gii 工具(开发环境)
    ],
    'backendPrefixes' => [
        '/backend',         // 后台管理路由
        '/rbac',            // RBAC 模块路由
    ],
],

3. 运行迁移(可选)

如果需要初始化权限数据,可以运行迁移文件:

php yii migrate/up --migrationPath=@yii/rbac/migrations
php yii migrate --migrationPath=@vendor/jzkf/yii2-rbac/src/migrations

4. 使用菜单助手

在布局文件中使用菜单助手:

use jzkf\rbac\components\BackendMenuHelper;

$menuItems = BackendMenuHelper::getAssignedMenu();

目录结构

yii2-rbac/
├── src/
│   ├── components/          # 组件
│   │   ├── AccessControl.php          # 访问控制过滤器
│   │   ├── BackendMenuHelper.php      # 后台菜单助手
│   │   ├── PermissionHelper.php       # 权限助手
│   │   └── PermissionScanner.php      # 权限扫描器
│   ├── controllers/         # 控制器
│   │   ├── AdminController.php        # 管理员管理
│   │   ├── DefaultController.php      # 默认控制器(统计面板)
│   │   ├── PermissionController.php   # 权限管理
│   │   ├── RoleController.php         # 角色管理
│   │   └── RolePermissionController.php # 角色权限分配
│   ├── migrations/          # 数据库迁移
│   ├── views/               # 视图文件
│   ├── Bootstrap.php        # 引导类
│   └── Module.php           # 模块类
├── composer.json
└── README.md

使用说明

权限管理

访问 /rbac/permission/index 可以:

  • 查看所有权限
  • 创建新权限
  • 编辑权限
  • 删除权限
  • 扫描权限:自动扫描控制器并生成权限

角色管理

访问 /rbac/role/index 可以:

  • 查看所有角色
  • 创建新角色
  • 编辑角色
  • 删除角色
  • 权限设置:为角色分配权限(支持全选/取消全选)

管理员管理

访问 /rbac/admin/index 可以:

  • 查看所有管理员
  • 创建新管理员
  • 编辑管理员信息
  • 分配角色
  • 封禁/启用管理员

权限扫描

模块提供了自动权限扫描功能,可以自动从控制器中提取 action 方法并生成权限。

访问 /rbac/permission/scan 或点击"扫描权限"按钮,系统会:

  1. 扫描配置的 scanPaths 中的所有控制器
  2. 提取所有 action* 方法
  3. 生成路由格式的权限名称
  4. 自动创建不存在的权限
  5. 清理缓存

权限命名规则

权限名称使用路由格式:

  • /backend/post/index - 文章列表
  • /backend/post/create - 创建文章
  • /backend/post/update - 更新文章
  • /backend/post/delete - 删除文章

支持通配符权限:

  • /backend/post/* - 匹配所有 /backend/post/ 下的路由

缓存管理

模块使用缓存来提高性能。当权限、角色或管理员数据发生变化时,会自动清理相关缓存:

  • 权限缓存
  • 菜单缓存

也可以在代码中手动清理:

use jzkf\rbac\components\PermissionHelper;
use jzkf\rbac\components\BackendMenuHelper;

// 清理所有权限缓存
PermissionHelper::clearCache();

// 清理所有菜单缓存
BackendMenuHelper::clearCache();

配置选项

Module 配置

  • scanPaths (array): 权限扫描路径,默认为 ['@app/controllers/backend']
  • controllerNames (array): 控制器名称映射,用于生成中文描述
  • actionDescriptions (array): Action 描述映射,用于生成中文描述
  • defaultRoute (string): 默认路由,默认为 'default/index'

AccessControl 配置

  • allowActions (array): 允许访问的路由列表(白名单)
  • backendPrefixes (array): 后台路由前缀,默认 ['/backend', '/rbac']

截图(Screenshots)

RBAC 管理面板

RBAC 管理面板

RBAC 模块的默认首页,显示管理员数量、角色数量和权限数量的统计信息。

权限管理

权限管理

权限管理页面,可以查看、创建、编辑、删除权限,以及使用"扫描权限"功能自动生成权限。

角色管理

角色管理

角色管理页面,可以查看、创建、编辑、删除角色。

角色权限分配

角色权限分配

为角色分配权限的页面,支持全选/取消全选功能,可以快速为角色分配多个权限。

管理员角色分配

管理员角色分配

为管理员分配角色的页面,可以管理管理员的角色权限。

许可证

BSD-3-Clause

支持

如有问题或建议,请提交 Issue 或 Pull Request。

jzkf/yii2-rbac 适用场景与选型建议

jzkf/yii2-rbac 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 4 次下载、GitHub Stars 达 0, 最近一次更新时间为 2026 年 01 月 08 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「admin」 「permission」 「rbac」 「yii2」 「role」 「access-control」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 jzkf/yii2-rbac 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 jzkf/yii2-rbac 我们能提供哪些服务?
定制开发 / 二次开发

基于 jzkf/yii2-rbac 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 4
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 15
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 0
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: BSD-3-Clause
  • 更新时间: 2026-01-08