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 或点击"扫描权限"按钮,系统会:
- 扫描配置的
scanPaths中的所有控制器 - 提取所有
action*方法 - 生成路由格式的权限名称
- 自动创建不存在的权限
- 清理缓存
权限命名规则
权限名称使用路由格式:
/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 模块的默认首页,显示管理员数量、角色数量和权限数量的统计信息。
权限管理
权限管理页面,可以查看、创建、编辑、删除权限,以及使用"扫描权限"功能自动生成权限。
角色管理
角色管理页面,可以查看、创建、编辑、删除角色。
角色权限分配
为角色分配权限的页面,支持全选/取消全选功能,可以快速为角色分配多个权限。
管理员角色分配
为管理员分配角色的页面,可以管理管理员的角色权限。
许可证
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 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。
线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。
承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。
与 jzkf/yii2-rbac 相关的其它包
同方向 / 同关键字的高下载量 PHP Composer 包推荐,方便对比选型:
2lenet/EasyAdminPlusBundle
Analysis module for finding problematical shop data.
This package provides a flexible way to add Role-based Permissions to Laravel 6.x
This package provides a flexible way to add Role-based Permissions to Laravel
Access management from UI
Symfony bundle to handle authorization, i.e. check permission to perform action on a resource.
统计信息
- 总下载量: 4
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 15
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: BSD-3-Clause
- 更新时间: 2026-01-08



%20-%20role-permission.png)
