Skip to content

PHP bitwise control to check somethings like Permissions, Roles, etc.

License

Notifications You must be signed in to change notification settings

izniburak/bit-permission

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

PHP Bit Permission Check

Check something like Permission, Roles, etc.. by using bitwise operations.

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

Tests Total Downloads Latest Stable Version Latest Unstable Version License

Install

composer.json file:

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

after run the install command.

$ composer install

OR run the following command directly.

$ composer require izniburak/bit-permission

Example Usage

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

Also, you can use Enum for your permission or role definitions. (or another things)
Please check out the tests to review more use cases.

Support

izniburak's homepage

izniburak's twitter

Licence

MIT Licence

Contributing

  1. Fork it ( https://github.com/izniburak/bit-permission/fork )
  2. Create your feature branch (git checkout -b my-new-feature)
  3. Commit your changes (git commit -am 'Add some feature')
  4. Push to the branch (git push origin my-new-feature)
  5. Create a new Pull Request

Contributors

  • izniburak İzni Burak Demirtaş - creator, maintainer

About

PHP bitwise control to check somethings like Permissions, Roles, etc.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages