没有命名空间的类 yii yii\base yii\behaviors yii\caching yii\captcha yii\console yii\console\controllers yii\console\widgets yii\data yii\db yii\db\conditions yii\db\cubrid yii\db\cubrid\conditions yii\db\mssql yii\db\mssql\conditions yii\db\mysql yii\db\oci yii\db\oci\conditions yii\db\pgsql yii\db\sqlite yii\db\sqlite\conditions yii\di yii\filters yii\filters\auth yii\grid yii\helpers yii\i18n yii\log yii\mail yii\mutex yii\rbac yii\rest yii\test yii\validators yii\web yii\widgets

Class yii\rbac\PhpManager

继承yii\rbac\PhpManager » yii\rbac\BaseManager » yii\base\Component » yii\base\BaseObject
实现yii\base\Configurable, yii\rbac\ManagerInterface
可用版本自2.0
源码 https://github.com/yiichina/yii2/blob/api/framework/rbac/PhpManager.php

PhpManager 表示一个授权管理器, 它根据 PHP 脚本文件存储授权信息。

授权数据将保存到 $itemFile$assignmentFile$ruleFile 指定的三个文件中并从中加载。

PhpManager 主要适用于不太大的授权数据 (例如,个人博客系统的授权数据)。 对于更复杂的授权数据,应使用 yii\rbac\DbManager

请注意,PhpManager 与 facebooks HHVM 不兼容, 因为它依赖于编写 php 文件并在之后包含它们,而 HHVM 不支持它们。

有关 PhpManager 的更多详细信息和用法信息,请参阅 授权指南

公共属性

隐藏继承的属性

属性类型描述被定义在
$assignmentFile string 包含授权分配的 PHP 脚本的路径。 这可以是文件路径,也可以是文件的 路径别名。 如果需要在线更改授权,请确保 Web 服务器进程可写入此文件。 yii\rbac\PhpManager
$behaviors yii\base\Behavior[] List of behaviors attached to this component yii\base\Component
$defaultRoleInstances yii\rbac\Role[] 默认角色。该数组由角色名称索引 yii\rbac\BaseManager
$itemFile string 包含授权项的 PHP 脚本的路径。 这可以是文件路径,也可以是文件的 路径别名。 如果需要在线更改授权,请确保 Web 服务器进程可写入此文件。 yii\rbac\PhpManager
$permissions yii\rbac\Permission[] 系统中的所有权限。该数组由权限名称索引。 yii\rbac\BaseManager
$roles yii\rbac\Role[] 系统中的所有角色。该数组由角色名称索引。 yii\rbac\BaseManager
$ruleFile string 包含授权规则的 PHP 脚本的路径。 这可以是文件路径,也可以是文件的 路径别名。 如果需要在线更改授权,请确保 Web 服务器进程可写入此文件。 yii\rbac\PhpManager

受保护的属性

隐藏继承的属性

属性类型描述被定义在
$assignments array yii\rbac\PhpManager
$children array yii\rbac\PhpManager
$defaultRoles array 在不调用 assign() 的情况下自动分配给每个用户的角色名称列表。 请注意,无论身份验证的状态如何,这些角色都将应用于用户。 yii\rbac\BaseManager
$items yii\rbac\Item[] yii\rbac\PhpManager
$rules yii\rbac\Rule[] yii\rbac\PhpManager

公共方法

隐藏继承的方法

方法描述被定义在
__call() Calls the named method which is not a class method. yii\base\Component
__clone() This method is called after the object is created by cloning an existing one. yii\base\Component
__construct() Constructor. yii\base\BaseObject
__get() Returns the value of a component property. yii\base\Component
__isset() Checks if a property is set, i.e. defined and not null. yii\base\Component
__set() Sets the value of a component property. yii\base\Component
__unset() Sets a component property to be null. yii\base\Component
add() 向 RBAC 系统添加角色,权限或规则。 yii\rbac\BaseManager
addChild() 将项目添加为另一项目的子项。 yii\rbac\PhpManager
assign() 为用户分配角色。 yii\rbac\PhpManager
attachBehavior() Attaches a behavior to this component. yii\base\Component
attachBehaviors() Attaches a list of behaviors to the component. yii\base\Component
behaviors() Returns a list of behaviors that this component should behave as. yii\base\Component
canAddChild() 检查将孩子加入父项的可能性。 yii\rbac\PhpManager
canGetProperty() Returns a value indicating whether a property can be read. yii\base\Component
canSetProperty() Returns a value indicating whether a property can be set. yii\base\Component
checkAccess() yii\rbac\PhpManager
className() Returns the fully qualified name of this class. yii\base\BaseObject
createPermission() 创建一个新的 Permission 对象。 请注意,新创建的权限尚未添加到 RBAC 系统。 你必须填写所需数据并调用 add() 将其添加到系统中。 yii\rbac\BaseManager
createRole() 创建一个新的 Role 对象。 请注意,新创建的角色尚未添加到 RBAC 系统。 你必须填写所需数据并调用 add() 将其添加到系统中。 yii\rbac\BaseManager
detachBehavior() Detaches a behavior from the component. yii\base\Component
detachBehaviors() Detaches all behaviors from the component. yii\base\Component
ensureBehaviors() Makes sure that the behaviors declared in behaviors() are attached to this component. yii\base\Component
getAssignment() 返回有关角色和用户的分配信息。 yii\rbac\PhpManager
getAssignments() 返回指定用户的所有角色分配信息。 yii\rbac\PhpManager
getBehavior() Returns the named behavior object. yii\base\Component
getBehaviors() Returns all behaviors attached to this component. yii\base\Component
getChildRoles() 返回指定角色的子角色。深度不受限制。 yii\rbac\PhpManager
getChildren() 返回子项权限和角色。 yii\rbac\PhpManager
getDefaultRoleInstances() 将 defaultRoles 作为 Role 对象的数组返回。 yii\rbac\BaseManager
getDefaultRoles() 获取默认角色 yii\rbac\BaseManager
getItem() 返回指定的 auth 项。 yii\rbac\PhpManager
getItems() 返回指定类型的项。 yii\rbac\PhpManager
getPermission() 返回指定的权限。 yii\rbac\BaseManager
getPermissions() 返回系统中的所有权限。 yii\rbac\BaseManager
getPermissionsByRole() 返回指定角色所代表的所有权限。 yii\rbac\PhpManager
getPermissionsByUser() 返回用户拥有的所有权限。 yii\rbac\PhpManager
getRole() 返回指定的角色。 yii\rbac\BaseManager
getRoles() 返回系统中的所有角色。 yii\rbac\BaseManager
getRolesByUser() {@inheritdoc} 此方法返回的角色包括通过 $defaultRoles 分配的角色。 yii\rbac\PhpManager
getRule() 返回指定名称的规则。 yii\rbac\PhpManager
getRules() 返回系统中可用的所有规则。 yii\rbac\PhpManager
getUserIdsByRole() 返回分配给指定角色的所有用户 ID。 yii\rbac\PhpManager
hasChild() 返回一个值,该值指示父项的子项是否已存在。 yii\rbac\PhpManager
hasEventHandlers() Returns a value indicating whether there is any handler attached to the named event. yii\base\Component
hasMethod() Returns a value indicating whether a method is defined. yii\base\Component
hasProperty() Returns a value indicating whether a property is defined for this component. yii\base\Component
init() 初始化应用程序组件。 此方法通过从 PHP 脚本加载授权数据来覆盖父实现。 yii\rbac\PhpManager
off() Detaches an existing event handler from this component. yii\base\Component
on() Attaches an event handler to an event. yii\base\Component
remove() 从 RBAC 系统中删除角色,权限或规则。 yii\rbac\BaseManager
removeAll() 删除所有授权数据,包括角色,权限,规则和分配。 yii\rbac\PhpManager
removeAllAssignments() 删除所有角色分配。 yii\rbac\PhpManager
removeAllPermissions() 删除所有权限。 所有父子关系将相应调整。 yii\rbac\PhpManager
removeAllRoles() 删除所有角色。 所有父子关系将相应调整。 yii\rbac\PhpManager
removeAllRules() 删除所有规则。 所有具有规则的角色和权限都将相应调整。 yii\rbac\PhpManager
removeChild() 从父项中移除一个子项。 注意,子项目不会被删除。仅删除父子关系。 yii\rbac\PhpManager
removeChildren() 从父项那里删除所有子项。 注意,子项目不会被删除。仅删除父子关系。 yii\rbac\PhpManager
removeItem() 从 RBAC 系统中删除 auth 项。 yii\rbac\PhpManager
revoke() 撤消用户的角色。 yii\rbac\PhpManager
revokeAll() 撤消用户的所有角色。 yii\rbac\PhpManager
setDefaultRoles() 设置默认角色 yii\rbac\BaseManager
trigger() Triggers an event. yii\base\Component
update() 更新系统中指定的角色,权限或规则。 yii\rbac\BaseManager
updateRule() 更新 RBAC 系统中的规则。 yii\rbac\PhpManager

受保护的方法

隐藏继承的方法

方法描述被定义在
addItem() 将一个 auth 项添加到 RBAC 系统。 yii\rbac\PhpManager
addRule() 向 RBAC 系统添加规则。 yii\rbac\PhpManager
checkAccessRecursive() 对指定用户执行访问检查。 此方法由 checkAccess() 在内部调用。 yii\rbac\PhpManager
detectLoop() 检查授权项层次结构中是否存在循环。 yii\rbac\PhpManager
executeRule() 执行与指定 auth 项关联的规则。 yii\rbac\BaseManager
getChildrenRecursive() 递归查找指定项的所有子项及子孙项。 yii\rbac\PhpManager
getDirectPermissionsByUser() 返回直接分配给用户的所有权限。 yii\rbac\PhpManager
getInheritedPermissionsByUser() 返回用户从分配给他的角色继承的所有权限。 yii\rbac\PhpManager
hasNoAssignments() 检查 $assignment 和 $defaultRoles 数组是否都为空。 yii\rbac\BaseManager
invalidateScriptCache() 使给定文件的预编译脚本缓存(例如 OPCache 或 APC )失效。 yii\rbac\PhpManager
load() 从文件中加载授权数据。 yii\rbac\PhpManager
loadFromFile() 从 PHP 脚本文件加载授权数据。 yii\rbac\PhpManager
removeAllItems() 删除指定类型的所有认证项。 yii\rbac\PhpManager
removeRule() 从 RBAC 系统中删除规则。 yii\rbac\PhpManager
save() 将授权数据保存到文件中。 yii\rbac\PhpManager
saveAssignments() 将授权分配数据保存到文件中。 yii\rbac\PhpManager
saveItems() 将授权项数据保存到文件中。 yii\rbac\PhpManager
saveRules() 将授权规则数据保存到文件中。 yii\rbac\PhpManager
saveToFile() 将授权数据保存到 PHP 脚本文件。 yii\rbac\PhpManager
updateItem() 更新 RBAC 系统中的 auth 项。 yii\rbac\PhpManager

属性详情

$assignmentFile 公共 属性

包含授权分配的 PHP 脚本的路径。 这可以是文件路径,也可以是文件的 路径别名。 如果需要在线更改授权,请确保 Web 服务器进程可写入此文件。

参见:

public string $assignmentFile '@app/rbac/assignments.php'
$assignments 受保护 属性
protected array $assignments = []
$children 受保护 属性
protected array $children = []
$itemFile 公共 属性

包含授权项的 PHP 脚本的路径。 这可以是文件路径,也可以是文件的 路径别名。 如果需要在线更改授权,请确保 Web 服务器进程可写入此文件。

参见:

public string $itemFile '@app/rbac/items.php'
$items 受保护 属性
protected yii\rbac\Item[] $items = []
$ruleFile 公共 属性

包含授权规则的 PHP 脚本的路径。 这可以是文件路径,也可以是文件的 路径别名。 如果需要在线更改授权,请确保 Web 服务器进程可写入此文件。

参见:

public string $ruleFile '@app/rbac/rules.php'
$rules 受保护 只读 属性
public yii\rbac\Rule[] getRules ( )

方法详情

addChild() 公共 方法

将项目添加为另一项目的子项。

public boolean addChild($parent, $child)
$parent yii\rbac\Item
$child yii\rbac\Item
return boolean

是否成功添加为子项

throws yii\base\Exception

如果父子关系已经存在或者检测到循环。

addItem() 受保护 方法

将一个 auth 项添加到 RBAC 系统。

protected boolean addItem($item)
$item yii\rbac\Item

要添加的项目

return boolean

是否已成功将 auth 项添加到系统中

throws Exception

如果数据验证或保存失败(例如角色名称或权限不唯一)

addRule() 受保护 方法

向 RBAC 系统添加规则。

protected boolean addRule($rule)
$rule yii\rbac\Rule

要添加的规则

return boolean

规则是否已成功添加到系统中

throws Exception

如果数据验证或保存失败(例如规则名称不唯一)

assign() 公共 方法

为用户分配角色。

public yii\rbac\Assignment assign($role, $userId)
$role yii\rbac\Role|yii\rbac\Permission
$userId string|integer

用户 ID(见 yii\web\User::$id

return yii\rbac\Assignment

角色分配信息。

throws Exception

如果该角色已分配给用户

canAddChild() 公共 方法 (自版本 2.0.8 可用)

检查将孩子加入父项的可能性。

public boolean canAddChild($parent, $child)
$parent yii\rbac\Item

父项

$child yii\rbac\Item

要添加到层次结构中的子项

return boolean

是否可以添加

checkAccess() 公共 方法

public void checkAccess($userId, $permissionName, $params = [])
$userId
$permissionName
$params
checkAccessRecursive() 受保护 方法

对指定用户执行访问检查。 此方法由 checkAccess() 在内部调用。

protected boolean checkAccessRecursive($user, $itemName, $params, $assignments)
$user string|integer

用户 ID。这应该是整数或字符串, 表示用户的唯一标识符。参阅 yii\web\User::$id

$itemName string

需要访问检查的操作的名称

$params array

一个键值对,用于传递给与分配给用户任务和角色关联的规则。 名为 'user' 的参数将添加到此数组中, 该数组包含 $userId 的值。

$assignments yii\rbac\Assignment[]

指定用户的分配

return boolean

用户是否可以执行操作。

detectLoop() 受保护 方法

检查授权项层次结构中是否存在循环。

protected boolean detectLoop($parent, $child)
$parent yii\rbac\Item

父项目

$child yii\rbac\Item

要添加到层次结构的子项

return boolean

是否存在循环

getAssignment() 公共 方法

返回有关角色和用户的分配信息。

public null|yii\rbac\Assignment getAssignment($roleName, $userId)
$roleName string

角色名称

$userId string|integer

用户 ID(详见 yii\web\User::$id

return null|yii\rbac\Assignment

分配信息。如果该角色没有分配给该用户, 则返回 Null。

getAssignments() 公共 方法

返回指定用户的所有角色分配信息。

public yii\rbac\Assignment[] getAssignments($userId)
$userId string|integer

用户 ID(详见 yii\web\User::$id

return yii\rbac\Assignment[]

由角色名称索引的分配。如果该用户没有分配角色, 则返回空数组。

getChildRoles() 公共 方法

返回指定角色的子角色。深度不受限制。

public yii\rbac\Role[] getChildRoles($roleName)
$roleName string

要为其提供子角色的角色的名称

return yii\rbac\Role[]

子角色。该数组由角色名称索引。 第一个元素是父角色本身的一个实例。

throws yii\base\InvalidParamException

如果找不到通过 $roleName 获取的 Role

getChildren() 公共 方法

返回子项权限和角色。

public yii\rbac\Item[] getChildren($name)
$name string

父项名

return yii\rbac\Item[]

子项权限和角色

getChildrenRecursive() 受保护 方法

递归查找指定项的所有子项及子孙项。

protected void getChildrenRecursive($name, &$result)
$name string

要查找其子项的项的名称。

$result array

子项和子孙项(在数组键中)

getDirectPermissionsByUser() 受保护 方法 (自版本 2.0.7 可用)

返回直接分配给用户的所有权限。

protected yii\rbac\Permission[] getDirectPermissionsByUser($userId)
$userId string|integer

用户 ID(详见 yii\web\User::$id

return yii\rbac\Permission[]

用户拥有的所有直接权限。该数组由权限名称索引。

getInheritedPermissionsByUser() 受保护 方法 (自版本 2.0.7 可用)

返回用户从分配给他的角色继承的所有权限。

protected yii\rbac\Permission[] getInheritedPermissionsByUser($userId)
$userId string|integer

用户 ID(详见 yii\web\User::$id

return yii\rbac\Permission[]

用户拥有的所有继承权限。该数组由权限名称索引。

getItem() 公共 方法

返回指定的 auth 项。

public yii\rbac\Item getItem($name)
$name string

Auth 项的名称。

return yii\rbac\Item

与指定名称对应的 auth 项。如果没有这样的项目,则返回 Null。

getItems() 公共 方法

返回指定类型的项。

public yii\rbac\Item[] getItems($type)
$type integer

Auth 项类型(yii\rbac\Item::TYPE_ROLEyii\rbac\Item::TYPE_PERMISSION

return yii\rbac\Item[]

指定类型的 auth 项。

getPermissionsByRole() 公共 方法

返回指定角色所代表的所有权限。

public yii\rbac\Permission[] getPermissionsByRole($roleName)
$roleName string

角色名称

return yii\rbac\Permission[]

角色所代表的所有权限。该数组由权限名称索引。

getPermissionsByUser() 公共 方法

返回用户拥有的所有权限。

public yii\rbac\Permission[] getPermissionsByUser($userId)
$userId string|integer

用户 ID(详见 yii\web\User::$id

return yii\rbac\Permission[]

用户拥有的所有权限。该数组由权限名称索引。

getRolesByUser() 公共 方法

{@inheritdoc} 此方法返回的角色包括通过 $defaultRoles 分配的角色。

public void getRolesByUser($userId)
$userId
getRule() 公共 方法

返回指定名称的规则。

public null|yii\rbac\Rule getRule($name)
$name string

规则名称

return null|yii\rbac\Rule

规则对象,如果指定的名称与规则不对应,则为 null。

getRules() 公共 方法

返回系统中可用的所有规则。

public yii\rbac\Rule[] getRules()
return yii\rbac\Rule[]

由规则名称索引的规则

getUserIdsByRole() 公共 方法 (自版本 2.0.7 可用)

返回分配给指定角色的所有用户 ID。

public array getUserIdsByRole($roleName)
$roleName string
return array

用户 ID 字符串数组

hasChild() 公共 方法

返回一个值,该值指示父项的子项是否已存在。

public boolean hasChild($parent, $child)
$parent yii\rbac\Item
$child yii\rbac\Item
return boolean

是否 $child 已经是 $parent 的孩子了

init() 公共 方法

初始化应用程序组件。 此方法通过从 PHP 脚本加载授权数据来覆盖父实现。

public void init()
invalidateScriptCache() 受保护 方法 (自版本 2.0.9 可用)

使给定文件的预编译脚本缓存(例如 OPCache 或 APC )失效。

protected void invalidateScriptCache($file)
$file string

文件路径。

load() 受保护 方法

从文件中加载授权数据。

protected void load()
loadFromFile() 受保护 方法

从 PHP 脚本文件加载授权数据。

参见 saveToFile().

protected array loadFromFile($file)
$file string

文件路径。

return array

授权数据

removeAll() 公共 方法

删除所有授权数据,包括角色,权限,规则和分配。

public void removeAll()
removeAllAssignments() 公共 方法

删除所有角色分配。

public void removeAllAssignments()
removeAllItems() 受保护 方法

删除指定类型的所有认证项。

protected void removeAllItems($type)
$type integer

认证项目类型(该值为 Item::TYPE_PERMISSION 或者 Item::TYPE_ROLE)

removeAllPermissions() 公共 方法

删除所有权限。 所有父子关系将相应调整。

public void removeAllPermissions()
removeAllRoles() 公共 方法

删除所有角色。 所有父子关系将相应调整。

public void removeAllRoles()
removeAllRules() 公共 方法

删除所有规则。 所有具有规则的角色和权限都将相应调整。

public void removeAllRules()
removeChild() 公共 方法

从父项中移除一个子项。 注意,子项目不会被删除。仅删除父子关系。

public boolean removeChild($parent, $child)
$parent yii\rbac\Item
$child yii\rbac\Item
return boolean

是否删除成功

removeChildren() 公共 方法

从父项那里删除所有子项。 注意,子项目不会被删除。仅删除父子关系。

public boolean removeChildren($parent)
$parent yii\rbac\Item
return boolean

是否删除成功

removeItem() 公共 方法

从 RBAC 系统中删除 auth 项。

public boolean removeItem($item)
$item yii\rbac\Item

要删除的项目

return boolean

是否成功删除了角色或权限

throws Exception

如果数据验证或保存失败(例如角色名称或权限不唯一)

removeRule() 受保护 方法

从 RBAC 系统中删除规则。

protected boolean removeRule($rule)
$rule yii\rbac\Rule

要删除的规则

return boolean

是否成功删除了规则

throws Exception

如果数据验证或保存失败(例如规则名称不唯一)

revoke() 公共 方法

撤消用户的角色。

public boolean revoke($role, $userId)
$role yii\rbac\Role|yii\rbac\Permission
$userId string|integer

用户 ID(详见 yii\web\User::$id

return boolean

是否撤销成功

revokeAll() 公共 方法

撤消用户的所有角色。

public \yii\rbac\bool是否撤销成功 revokeAll($userId)
$userId string|integer

用户 ID(详见 yii\web\User::$id

save() 受保护 方法

将授权数据保存到文件中。

protected void save()
saveAssignments() 受保护 方法

将授权分配数据保存到文件中。

protected void saveAssignments()
saveItems() 受保护 方法

将授权项数据保存到文件中。

protected void saveItems()
saveRules() 受保护 方法

将授权规则数据保存到文件中。

protected void saveRules()
saveToFile() 受保护 方法

将授权数据保存到 PHP 脚本文件。

参见 loadFromFile().

protected void saveToFile($data, $file)
$data array

授权数据

$file string

文件路径。

updateItem() 受保护 方法

更新 RBAC 系统中的 auth 项。

protected boolean updateItem($name, $item)
$name string

要更新的项目名称

$item yii\rbac\Item

更新的项目

return boolean

是否已成功更新 auth 项

throws Exception

如果数据验证或保存失败(例如角色名称或权限不唯一)

updateRule() 公共 方法

更新 RBAC 系统中的规则。

public boolean updateRule($name, $rule)
$name string

要更新的规则的名称

$rule yii\rbac\Rule

更新的规则

return boolean

规则是否已成功更新

throws Exception

如果数据验证或保存失败(例如规则名称不唯一)