izniburak/bit-permission

简单的PHP位操作控制,用于检查权限、角色等。

v1.0.0 2024-06-04 22:19 UTC

This package is auto-updated.

Last update: 2024-09-04 22:57:25 UTC


README

通过位操作检查权限、角色等。

  _     _ _                                    _         _             
| |   (_) |                                  (_)       (_)            
| |__  _| |_ ______ _ __   ___ _ __ _ __ ___  _ ___ ___ _  ___  _ __  
| '_ \| | __|______| '_ \ / _ \ '__| '_ ` _ \| / __/ __| |/ _ \| '_ \ 
| |_) | | |_       | |_) |  __/ |  | | | | | | \__ \__ \ | (_) | | | |
|_.__/|_|\__|      | .__/ \___|_|  |_| |_| |_|_|___/___/_|\___/|_| |_|
                   | |                                                
                   |_|

Tests Total Downloads Latest Stable Version Latest Unstable Version License

安装

composer.json文件

{
    "require": {
        "izniburak/bit-permission": "^1.0"
    }
}

运行安装命令后。

$ composer install

或者直接运行以下命令。

$ composer require izniburak/bit-permission

示例用法

require 'vendor/autoload.php';

use Buki\BitPermission\Binary;
use Buki\BitPermission\Sequent;

// FOR ROLE MANAGEMENT
class Role
{
    const GUEST = 0;
    const USER = 1;
    const EDITOR = 2;
    const AUTHOR = 3;
    const ADMIN = 4;
    const ROOT = 5;
}

$role = new Sequent;
$role->add([Role::USER, Role::AUTHOR]);

$role->has(ROLE::USER); // true
$role->has(ROLE::AUTHOR); // true
$role->has(ROLE::EDITOR); // false

// FOR PERMISSION MANAGEMENT
class Permission
{
    // Each permission is represented by a single bit.
    const NONE = 0x0000; // 0000
    const READ = 0x0001; // 0001
    const WRITE = 0x0002; // 0010
    const UPDATE = 0x0004; // 0100
    const DELETE = 0x0008; // 1000
    const SUPER = 0x000f; // 1111
}

$permission = new Binary;
$permission->add([Permission::READ, Permission::WRITE]);

$permission->has(Permission::READ); // true
$permission->has(Permission::DELETE); // false

此外,您还可以使用Enum定义权限或角色。 (或其他东西)
请查看测试以查看更多用例。

支持

izniburak的主页

izniburak的twitter

许可

MIT许可

贡献

  1. 复制(fork) https://github.com/izniburak/bit-permission/fork
  2. 创建您的功能分支(git checkout -b my-new-feature)
  3. 提交您的更改(git commit -am '添加一些功能')
  4. 将更改推送到分支(git push origin my-new-feature)
  5. 创建新的拉取请求

贡献者

  • izniburak İzni Burak Demirtaş - 创建者,维护者