1. Go to this page and download the library: Download alexya-framework/roles library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
alexya-framework / roles example snippets
namespace Application\RBAC\Permissions;
use Alexya\Roles\Permission;
class Read extends Permission
{
/**
* Constructor.
*/
public function __construct()
{
parent::__construct(1, "read", Permission::STATUS_INHERITED);
}
}
class Write extends Permission
{
/**
* Constructor.
*/
public function __construct()
{
parent::__construct(2, "write", Permission::STATUS_INHERITED);
}
}
namespace Application\RBAC\Roles;
use Alexya\Roles\Role;
class CanRead extends Role
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct(1, "can_read", 1);
}
}
class CanWrite extends Role
{
/**
* Constructor
*/
public function __construct()
{
parent::__construct(2, "can_write", 1);
}
}
class CanReadAndWrite extends Role
{
/**
* Constructor.
*/
public function __construct()
{
parent::__construct(3, "can_read_and_write", 2);
}
}
$canRead = new CanRead();
$canRead->addPermission(new Read());
$canWrite = new CanWrite();
$canWrite->addPermission(new Write());
$canReadAndWrite = new CanReadAndWrite();
$canReadAndWrite->addPermission(new Read());
$canReadAndWrite->addPermission(new Write());
// Alternatively you could have set the parent role like this:
// $canReadAndWrite = new CanReadAndWrite();
// $canReadAndWrite->parent = $canRead;
// $canReadAndWrite->addPermission(new Write());
$canRead->can("read"); // true
$canRead->can(2); // false (Write permission has ID 2)
$canRead->can(new Read()); // true
$read = $canRead->getPermission(new Read()); // The Read permission sent through `addPermission`
$write = $canRead->getPermission("write"); // null;
$user = new User();
$user->addRole(2);
$user->can(new Read()); // false
$user->can(new Write()); // true
$user->addRole(new CanRead());
$user->can("read"); // true
$user->can(new Write()); // true
$user->getRole("can_write")
->getPermission("write")
->status = Permission::STATUS_DISABLED;
$user->can(new Read()); // true
$user->can(new Write()); // false
$user->addRole(new CanReadAndWrite());
$user->can(new Read()); // true
$user->can(new Write()); // true because the priority of `CanReadAndWrite` is bigger than the `CanWrite` priority.
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.