PHPackages                             ezijing-mse-hyperf/permission - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Authentication &amp; Authorization](/categories/authentication)
4. /
5. ezijing-mse-hyperf/permission

ActiveLibrary[Authentication &amp; Authorization](/categories/authentication)

ezijing-mse-hyperf/permission
=============================

hyperf权限管理组件

v2.2.0(5y ago)0335MITPHPPHP ^7.2

Since Dec 17Pushed 5y ago1 watchersCompare

[ Source](https://github.com/wojiushidashen/ezijing-mse-hyperf-permission)[ Packagist](https://packagist.org/packages/ezijing-mse-hyperf/permission)[ Docs](https://github.com/wojiushidashen/ezijing-mse-hyperf-permission.git)[ RSS](/packages/ezijing-mse-hyperf-permission/feed)WikiDiscussions main Synced 2d ago

READMEChangelogDependencies (6)Versions (13)Used By (0)

Hyperf权限管理组件
============

[](#hyperf权限管理组件)

推荐使用Hyperf Casbin:

转换至Casbin示例代码，按自己实际情况修改：

```
        $roles = Role::with(['users', 'perms'])->get();
        foreach ($roles as $role) {
            if ($role->perms) {
                foreach ($role->perms as $perm) {
                    Enforcer::addPermissionForUser($role->name, $perm->name, 'ANY');
                }
            }
            if ($role->users) {
                foreach ($role->users as $user) {
                    Enforcer::addRoleForUser($user->username, $role->name);
                }
            }
        }

```

适配Hyperf的[spatie/laravel-permission](https://github.com/spatie/laravel-permission)

使用示例代码：

与spatie/laravel-permission的区别
-----------------------------

[](#与spatielaravel-permission的区别)

- 无中间件,Hyperf目前还没有Auth组件，请自行创建中间件
- 命令行只保留清除缓存 ```
    php bin/hyperf.php permission:cache-reset

    ```
- permissions 增加 parent\_id,display\_name,url,sort字段，用于生成树形菜单，但不是必填。 ```
    $user->getMenu(); // 获取当前登录用户的菜单,即url有值。
     /**
      * 获取树形的permission列表.
      * @param int||string $parentId 父级ID
      * @param bool $isUrl 是否是一个URL
      * @param Collection $permission 传入permission集合，如果不传将从所有的permission生成
      * @return Collection
      */
    Permission::getMenuList($parentId = 0, $isUrl = false, Collection $permission = null);

    ```
- roles增加description字段,非必填

安装
--

[](#安装)

```
 composer require ezijing-mse-hyperf/permission

```

发布配置

```
 php bin/hyperf.php vendor:publish ezijing-mse-hyperf/permission

```

修改配置文件config/autoload/permission.php

数据库迁移

```
php bin/hyperf.php migrate

```

将Ezijing\\Permission\\Traits\\HasRoles添加到你的用户Model

```
...
use Ezijing\Permission\Traits\HasRoles;

class User extends Model {

    use HasRoles;
   ...
}

```

使用
--

[](#使用)

```
use Ezijing\Permission\Models\Permission;
use Ezijing\Permission\Models\Role;

//创建一个角色
$role = Role::create(['name' => '管理员','description'=>'']);
//创建权限
$permission = Permission::create(['name' => 'user-center/user/get','display_name'=>'用户管理','url'=>'user-center/user']);
$permission = Permission::create(['name' => 'user-center/user/post','display_name'=>'创建用户','parent_id'=>$p1->id]);
//为角色分配一个权限
$role->givePermissionTo($permission);
$role->syncPermissions($permissions);//多个
$role->syncPermissions([1,2,3]);
//权限添加到一个角色
$permission->assignRole($role);
$permission->syncRoles($roles);//多个
$permission->syncRoles([1,2,3]);
//删除权限
$role->revokePermissionTo($permission);
$permission->removeRole($role);
//为用户直接分配权限
$user->givePermissionTo('user-center/user/get');
//为用户分配角色
$user->assignRole('管理员');
$user->assignRole($role->id);
$user->assignRole($role);
$user->syncRoles(['管理员', '普通用户']);
$user->syncRoles([1,2,3]);
//删除角色
$user->removeRole('管理员');
//获取用户集合
$permission->users;
$role->users;
//获取角色集合
$user->getRoleNames();
$permission->roles;
//获取所有权限
$user->getAllPermissions();
$role->permissions;
//获取树形菜单
$user->getMenu();
//验证
$user->can('user-center/user/get');
$user->can($permission->id);
$user->can($permission);
$user->hasAnyPermission([$permission1,$permission2]);
$user->hasAnyPermission(['user-center/user/get','user-center/user/post']);
$user->hasAnyPermission([1,2]);
$user->hasRole('管理员');
$user->hasRole(['管理员','普通用户']);
$user->hasRole($role);
$user->hasRole([$role1,$role2]);

```

CHANGELOG
---------

[](#changelog)

[CHANGELOG.md](CHANGELOG.md)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

27

—

LowBetter than 49% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity12

Limited adoption so far

Community7

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~42 days

Recently: every ~0 days

Total

12

Last Release

1869d ago

Major Versions

1.1.1 → 2.0.02020-06-22

v1.0.0 → v2.1.02021-03-29

### Community

Maintainers

![](https://avatars.githubusercontent.com/u/3146572?v=4)[wangyizheng](/maintainers/wangyizheng)[@wangyizheng](https://github.com/wangyizheng)

---

Top Contributors

[![coderzhouyu](https://avatars.githubusercontent.com/u/8733357?v=4)](https://github.com/coderzhouyu "coderzhouyu (1 commits)")

---

Tags

securityaclpermissionrolespermissionsrbachyperf

### Embed Badge

![Health badge](/badges/ezijing-mse-hyperf-permission/health.svg)

```
[![Health](https://phpackages.com/badges/ezijing-mse-hyperf-permission/health.svg)](https://phpackages.com/packages/ezijing-mse-hyperf-permission)
```

###  Alternatives

[spatie/laravel-permission

Permission handling for Laravel 12 and up

12.9k89.8M1.0k](/packages/spatie-laravel-permission)[bezhansalleh/filament-shield

Filament support for `spatie/laravel-permission`.

2.8k2.9M88](/packages/bezhansalleh-filament-shield)[wnikk/laravel-access-rules

Simple system of ACR (access control rules) for Laravel, with roles, groups, unlimited inheritance and possibility of multiplayer use.

103.6k1](/packages/wnikk-laravel-access-rules)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
