0 フォロワー

抽象クラス yii\rbac\BaseManager

継承yii\rbac\BaseManager » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable, yii\rbac\ManagerInterface
サブクラスyii\rbac\DbManager, yii\rbac\PhpManager
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/rbac/BaseManager.php

BaseManagerは、RBAC管理のためにyii\rbac\ManagerInterfaceを実装する基本クラスです。

DbManagerの詳細と使用方法については、セキュリティ認証に関するガイド記事を参照してください。

公開プロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされているビヘイビアのリスト。 yii\base\Component
$defaultRoleInstances yii\rbac\Role[] デフォルトのロール。 yii\rbac\BaseManager
$defaultRoles array assign()を呼び出さずに、すべてのユーザーに自動的に割り当てられるロール名のリスト。 yii\rbac\BaseManager
$permissions yii\rbac\Permission[] システム内のすべてのパーミッション。 yii\rbac\BaseManager
$roles yii\rbac\Role[] システム内のすべてのロール。 yii\rbac\BaseManager
$rules yii\rbac\Rule[] ルール名でインデックス付けされたルール。 yii\rbac\ManagerInterface

保護されたプロパティ

継承されたプロパティを非表示

プロパティ 説明 定義元

公開メソッド

継承されたメソッドを非表示

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\Component
__clone() このメソッドは、既存のオブジェクトをクローンしてオブジェクトが作成された後に呼び出されます。 yii\base\Component
__construct() コンストラクタ。 yii\base\BaseObject
__get() コンポーネントプロパティの値を返します。 yii\base\Component
__isset() プロパティが設定されているかどうか(つまり、定義されていてnullでない)を確認します。 yii\base\Component
__set() コンポーネントプロパティの値を設定します。 yii\base\Component
__unset() コンポーネントプロパティをnullに設定します。 yii\base\Component
add() RBACシステムにロール、パーミッション、またはルールを追加します。 yii\rbac\BaseManager
addChild() アイテムを別のアイテムの子として追加します。 yii\rbac\ManagerInterface
assign() ユーザーにロールを割り当てます。 yii\rbac\ManagerInterface
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
behaviors() このコンポーネントが持つべきビヘイビアのリストを返します。 yii\base\Component
canAddChild() 親に子を追加できるかどうかを確認します。 yii\rbac\ManagerInterface
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
createPermission() 新しいPermissionオブジェクトを作成します。 yii\rbac\BaseManager
createRole() 新しいRoleオブジェクトを作成します。 yii\rbac\BaseManager
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors()で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
getAssignment() ロールとユーザーに関する割り当て情報を返します。 yii\rbac\ManagerInterface
getAssignments() 指定されたユーザーのすべてのロール割り当て情報を返します。 yii\rbac\ManagerInterface
getBehavior() 名前付きビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getChildRoles() 指定されたロールの子ロールを返します。深さは制限されません。 yii\rbac\ManagerInterface
getChildren() 子パーミッションと/またはロールを返します。 yii\rbac\ManagerInterface
getDefaultRoleInstances() Roleオブジェクトの配列としてdefaultRolesを返します。 yii\rbac\BaseManager
getDefaultRoles() デフォルトのロールを取得します yii\rbac\BaseManager
getPermission() 名前付きパーミッションを返します。 yii\rbac\BaseManager
getPermissions() システム内のすべてのパーミッションを返します。 yii\rbac\BaseManager
getPermissionsByRole() 指定されたロールが表すすべてのパーミッションを返します。 yii\rbac\ManagerInterface
getPermissionsByUser() ユーザーが持つすべてのパーミッションを返します。 yii\rbac\ManagerInterface
getRole() 名前付きロールを返します。 yii\rbac\BaseManager
getRoles() システム内のすべてのロールを返します。 yii\rbac\BaseManager
getRolesByUser() assign()を介してユーザーに割り当てられているロールを返します。 yii\rbac\ManagerInterface
getRule() 指定された名前のルールを返します。 yii\rbac\ManagerInterface
getRules() システムで使用可能なすべてのルールを返します。 yii\rbac\ManagerInterface
getUserIdsByRole() 指定されたロールに割り当てられているすべてのユーザーIDを返します。 yii\rbac\ManagerInterface
hasChild() 親に対して子が既に存在するかどうかを示す値を返します。 yii\rbac\ManagerInterface
hasEventHandlers() 名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() オブジェクトを初期化します。 yii\base\BaseObject
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
remove() RBACシステムからロール、パーミッション、またはルールを削除します。 yii\rbac\BaseManager
removeAll() ロール、パーミッション、ルール、割り当てを含むすべての承認データを削除します。 yii\rbac\ManagerInterface
removeAllAssignments() すべてのロール割り当てを削除します。 yii\rbac\ManagerInterface
removeAllPermissions() すべてのパーミッションを削除します。 yii\rbac\ManagerInterface
removeAllRoles() すべてのロールを削除します。 yii\rbac\ManagerInterface
removeAllRules() すべてのルールを削除します。 yii\rbac\ManagerInterface
removeChild() 親から子を除去します。 yii\rbac\ManagerInterface
removeChildren() 親からすべての子を除去します。 yii\rbac\ManagerInterface
revoke() ユーザーからロールを取り消します。 yii\rbac\ManagerInterface
revokeAll() ユーザーからすべてのロールを取り消します。 yii\rbac\ManagerInterface
setDefaultRoles() デフォルトのロールを設定します yii\rbac\BaseManager
trigger() イベントをトリガーします。 yii\base\Component
update() システム内の指定されたロール、パーミッション、またはルールを更新します。 yii\rbac\BaseManager

保護されたメソッド

継承されたメソッドを非表示

メソッド 説明 定義元
addItem() RBACシステムに認証アイテムを追加します。 yii\rbac\BaseManager
addRule() RBACシステムにルールを追加します。 yii\rbac\BaseManager
executeRule() 指定された認証アイテムに関連付けられたルールを実行します。 yii\rbac\BaseManager
getItem() 名前付き認証アイテムを返します。 yii\rbac\BaseManager
getItems() 指定された型のアイテムを返します。 yii\rbac\BaseManager
hasNoAssignments() $assignments配列が空で、$defaultRolesプロパティも空かどうかを確認します。 yii\rbac\BaseManager
removeItem() RBACシステムから認証アイテムを削除します。 yii\rbac\BaseManager
removeRule() RBACシステムからルールを削除します。 yii\rbac\BaseManager
updateItem() RBACシステム内の認証アイテムを更新します。 yii\rbac\BaseManager
updateRule() RBACシステムにルールを更新します。 yii\rbac\BaseManager

プロパティの詳細

継承されたプロパティを非表示

$defaultRoleInstances public プロパティ

デフォルトのロール。配列はロール名でインデックスされています。

$defaultRoles protected プロパティ

assign() を呼び出さずに、すべてのユーザーに自動的に割り当てられるロール名のリストです。これらのロールは、認証状態に関係なくユーザーに適用されます。

protected array $defaultRoles = []
$permissions public 読み取り専用プロパティ

システム内のすべてのパーミッション。配列はパーミッション名でインデックスされています。

$roles public 読み取り専用プロパティ

システム内のすべてのロール。配列はロール名でインデックスされています。

public yii\rbac\Role[] getRoles ( )

メソッドの詳細

継承されたメソッドを非表示

__call() public メソッド

定義先: yii\base\Component::__call()

クラスメソッドではない名前付きメソッドを呼び出します。

このメソッドは、アタッチされたビヘイビアに指定されたメソッドがあるかどうかをチェックし、あれば実行します。

これはPHPのマジックメソッドであり、不明なメソッドが呼び出されたときに暗黙的に呼び出されるため、直接呼び出さないでください。

public mixed __call ( $name, $params )
$name string

メソッド名

$params array

メソッドパラメーター

戻り値 mixed

メソッドの戻り値

例外 yii\base\UnknownMethodException

不明なメソッドを呼び出した場合

                public function __call($name, $params)
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $object) {
        if ($object->hasMethod($name)) {
            return call_user_func_array([$object, $name], $params);
        }
    }
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__clone() public メソッド

定義先: yii\base\Component::__clone()

このメソッドは、既存のオブジェクトをクローンしてオブジェクトが作成された後に呼び出されます。

古いオブジェクトにアタッチされているため、すべてのビヘイビアを削除します。

public void __clone ( )

                public function __clone()
{
    $this->_events = [];
    $this->_eventWildcards = [];
    $this->_behaviors = null;
}

            
__construct() public メソッド

定義先: yii\base\BaseObject::__construct()

コンストラクタ。

デフォルトの実装では、次の2つのことを行います。

  • 指定された設定$configを使用してオブジェクトを初期化します。
  • init() を呼び出します。

このメソッドを子クラスでオーバーライドする場合は、

  • コンストラクターの最後のパラメーターが、ここに示すように$configのような設定配列であることをお勧めします。
  • コンストラクターの最後に親の実装を呼び出してください。
public void __construct ( $config = [] )
$config array

オブジェクトのプロパティを初期化するために使用される名前と値のペア

                public function __construct($config = [])
{
    if (!empty($config)) {
        Yii::configure($this, $config);
    }
    $this->init();
}

            
__get() public メソッド

定義先: yii\base\Component::__get()

コンポーネントプロパティの値を返します。

このメソッドは、以下の順序でチェックし、それに応じて動作します。

  • ゲッターによって定義されたプロパティ: ゲッターの結果を返す
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を返す

これはPHPのマジックメソッドであり、`$value = $component->property;` を実行したときに暗黙的に呼び出されるため、直接呼び出さないでください。

__set() も参照してください。

public mixed __get ( $name )
$name string

プロパティ名

戻り値 mixed

プロパティ値またはビヘイビアのプロパティの値

例外 yii\base\UnknownPropertyException

プロパティが定義されていない場合

例外 yii\base\InvalidCallException

プロパティが書き込み専用の場合。

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        // read property, e.g. getName()
        return $this->$getter();
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name;
        }
    }
    if (method_exists($this, 'set' . $name)) {
        throw new InvalidCallException('Getting write-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Getting unknown property: ' . get_class($this) . '::' . $name);
}

            
__isset() public メソッド

定義先: yii\base\Component::__isset()

プロパティが設定されているかどうか(つまり、定義されていてnullでない)を確認します。

このメソッドは、以下の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティが設定されているかどうかを返す
  • ビヘイビアのプロパティ: プロパティが設定されているかどうかを返す
  • 存在しないプロパティにはfalseを返す

これはPHPのマジックメソッドであり、`isset($component->property)` を実行したときに暗黙的に呼び出されるため、直接呼び出さないでください。

https://www.php.net/manual/en/function.isset.php も参照してください。

public boolean __isset ( $name )
$name string

プロパティ名またはイベント名

戻り値 boolean

指定されたプロパティが設定されているかどうか

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canGetProperty($name)) {
            return $behavior->$name !== null;
        }
    }
    return false;
}

            
__set() public メソッド

定義先: yii\base\Component::__set()

コンポーネントプロパティの値を設定します。

このメソッドは、以下の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティ値を設定する
  • "on xyz"形式のイベント: "xyz"イベントにハンドラーをアタッチする
  • "as xyz"形式のビヘイビア: "xyz"という名前のビヘイビアをアタッチする
  • ビヘイビアのプロパティ: ビヘイビアのプロパティ値を設定する

これはPHPのマジックメソッドであり、`$component->property = $value;` を実行したときに暗黙的に呼び出されるため、直接呼び出さないでください。

__get() も参照してください。

public void __set ( $name, $value )
$name string

プロパティ名またはイベント名

$value mixed

プロパティ値

例外 yii\base\UnknownPropertyException

プロパティが定義されていない場合

例外 yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        // set property
        $this->$setter($value);
        return;
    } elseif (strncmp($name, 'on ', 3) === 0) {
        // on event: attach event handler
        $this->on(trim(substr($name, 3)), $value);
        return;
    } elseif (strncmp($name, 'as ', 3) === 0) {
        // as behavior: attach behavior
        $name = trim(substr($name, 3));
        $this->attachBehavior($name, $value instanceof Behavior ? $value : Yii::createObject($value));
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = $value;
            return;
        }
    }
    if (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    }
    throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
}

            
__unset() public メソッド

定義先: yii\base\Component::__unset()

コンポーネントプロパティをnullに設定します。

このメソッドは、以下の順序でチェックし、それに応じて動作します。

  • セッターによって定義されたプロパティ: プロパティ値をnullに設定する
  • ビヘイビアのプロパティ: プロパティ値をnullに設定する

これはPHPのマジックメソッドであり、`unset($component->property)` を実行したときに暗黙的に呼び出されるため、直接呼び出さないでください。

https://www.php.net/manual/en/function.unset.php も参照してください。

public void __unset ( $name )
$name string

プロパティ名

例外 yii\base\InvalidCallException

プロパティが読み取り専用の場合。

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
        return;
    }
    // behavior property
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $behavior) {
        if ($behavior->canSetProperty($name)) {
            $behavior->$name = null;
            return;
        }
    }
    throw new InvalidCallException('Unsetting an unknown or read-only property: ' . get_class($this) . '::' . $name);
}

            
add() publicメソッド

RBACシステムにロール、パーミッション、またはルールを追加します。

public boolean add ( $object )
$object yii\rbac\Role|yii\rbac\Permission|yii\rbac\Rule
戻り値 boolean

ロール、パーミッション、またはルールがシステムに正常に追加されたかどうか

例外 例外

データ検証または保存に失敗した場合(ロールまたはパーミッションの名前が一意でないなど)

                public function add($object)
{
    if ($object instanceof Item) {
        if ($object->ruleName && $this->getRule($object->ruleName) === null) {
            $rule = \Yii::createObject($object->ruleName);
            $rule->name = $object->ruleName;
            $this->addRule($rule);
        }
        return $this->addItem($object);
    } elseif ($object instanceof Rule) {
        return $this->addRule($object);
    }
    throw new InvalidArgumentException('Adding unsupported object type.');
}

            
addChild() public抽象メソッド

定義済み: yii\rbac\ManagerInterface::addChild()

アイテムを別のアイテムの子として追加します。

public abstract boolean addChild ( $parent, $child )
$parent yii\rbac\Item
$child yii\rbac\Item
戻り値 boolean

子が正常に追加されたかどうか

例外 yii\base\Exception

親子関係が既に存在する場合、またはループが検出された場合。

                public function addChild($parent, $child);

            
addItem() protected抽象メソッド

RBACシステムに認証アイテムを追加します。

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

追加する項目

戻り値 boolean

認証項目がシステムに正常に追加されたかどうか

例外 例外

データ検証または保存に失敗した場合(ロールまたはパーミッションの名前が一意でないなど)

                abstract protected function addItem($item);

            
addRule() protected抽象メソッド

RBACシステムにルールを追加します。

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

追加するルール

戻り値 boolean

ルールがシステムに正常に追加されたかどうか

例外 例外

データ検証または保存に失敗した場合(ルールの名前が一意でないなど)

                abstract protected function addRule($rule);

            
assign() public抽象メソッド

定義済み: yii\rbac\ManagerInterface::assign()

ユーザーにロールを割り当てます。

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

ユーザーID(yii\web\User::$idを参照)

戻り値 yii\rbac\Assignment

ロールの割り当て情報。

例外 例外

ロールが既にユーザーに割り当てられている場合

                public function assign($role, $userId);

            
attachBehavior() publicメソッド

定義済み: yii\base\Component::attachBehavior()

このコンポーネントにビヘイビアをアタッチします。

このメソッドは、指定された設定に基づいてビヘイビアオブジェクトを作成します。その後、yii\base\Behavior::attach()メソッドを呼び出すことで、ビヘイビアオブジェクトがこのコンポーネントにアタッチされます。

detachBehavior()も参照してください。

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name string

ビヘイビアの名前。

$behavior string|array|yii\base\Behavior

ビヘイビアの設定。以下のいずれかになります。

  • yii\base\Behaviorオブジェクト
  • ビヘイビアクラスを指定する文字列
  • ビヘイビアオブジェクトを作成するためにYii::createObject()に渡されるオブジェクト設定配列。
戻り値 yii\base\Behavior

ビヘイビアオブジェクト

                public function attachBehavior($name, $behavior)
{
    $this->ensureBehaviors();
    return $this->attachBehaviorInternal($name, $behavior);
}

            
attachBehaviors() publicメソッド

定義済み: yii\base\Component::attachBehaviors()

コンポーネントにビヘイビアのリストをアタッチします。

各ビヘイビアは、その名前でインデックス付けされ、yii\base\Behaviorオブジェクト、ビヘイビアクラスを指定する文字列、またはビヘイビアを作成するための設定配列である必要があります。

attachBehavior()も参照してください。

public void attachBehaviors ( $behaviors )
$behaviors array

コンポーネントにアタッチされるビヘイビアのリスト

                public function attachBehaviors($behaviors)
{
    $this->ensureBehaviors();
    foreach ($behaviors as $name => $behavior) {
        $this->attachBehaviorInternal($name, $behavior);
    }
}

            
behaviors() publicメソッド

定義済み: yii\base\Component::behaviors()

このコンポーネントが持つべきビヘイビアのリストを返します。

子クラスはこのメソッドをオーバーライドして、それらが動作させたいビヘイビアを指定できます。

このメソッドの戻り値は、ビヘイビア名でインデックス付けされたビヘイビアオブジェクトまたは設定の配列である必要があります。ビヘイビアの設定は、ビヘイビアクラスを指定する文字列、または以下の構造の配列のいずれかです。

'behaviorName' => [
    'class' => 'BehaviorClass',
    'property1' => 'value1',
    'property2' => 'value2',
]

ビヘイビアクラスはyii\base\Behaviorを拡張する必要があることに注意してください。ビヘイビアは、名前付きまたは匿名でアタッチできます。配列キーとして名前が使用されている場合、この名前を使用して、getBehavior()を使用してビヘイビアを取得したり、detachBehavior()を使用してビヘイビアをデタッチしたりできます。匿名ビヘイビアは取得またはデタッチできません。

このメソッドで宣言されたビヘイビアは、(オンデマンドで)自動的にコンポーネントにアタッチされます。

public array behaviors ( )
戻り値 array

ビヘイビアの設定。

                public function behaviors()
{
    return [];
}

            
canAddChild() public抽象メソッド(バージョン2.0.8以降で使用可能)

定義済み: yii\rbac\ManagerInterface::canAddChild()

親に子を追加できるかどうかを確認します。

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

親項目

$child yii\rbac\Item

階層に追加される子項目

戻り値 boolean

追加の可能性

                public function canAddChild($parent, $child);

            
canGetProperty() publicメソッド

定義済み: yii\base\Component::canGetProperty()

プロパティを読み取ることができるかどうかを示す値を返します。

プロパティは、次の場合に読み取ることができます。

  • クラスに、指定された名前と関連付けられたゲッターメソッドがある場合(この場合、プロパティ名は大文字と小文字が区別されません)。
  • クラスに、指定された名前のメンバー変数がある場合(`$checkVars`がtrueの場合)。
  • アタッチされたビヘイビアに、指定された名前の読み取り可能なプロパティがある場合(`$checkBehaviors`がtrueの場合)。

参照: canSetProperty().

public boolean canGetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

戻り値 boolean

プロパティが読み取り可能かどうか

                public function canGetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canGetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
canSetProperty() public メソッド

定義先: yii\base\Component::canSetProperty()

プロパティを設定できるかどうかを示す値を返します。

プロパティは、以下の場合に書き込み可能です。

  • クラスに、指定された名前に関連付けられたセッターメソッドが存在する場合(この場合、プロパティ名は大小文字を区別しません)。
  • クラスに、指定された名前のメンバー変数がある場合(`$checkVars`がtrueの場合)。
  • アタッチされたビヘイビアに、指定された名前の書き込み可能なプロパティが存在する場合($checkBehaviors が true の場合)。

参照: canGetProperty().

public boolean canSetProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

戻り値 boolean

プロパティが書き込み可能かどうか

                public function canSetProperty($name, $checkVars = true, $checkBehaviors = true)
{
    if (method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->canSetProperty($name, $checkVars)) {
                return true;
            }
        }
    }
    return false;
}

            
className() public static メソッド
2.0.14 より非推奨。PHP >= 5.5 では、代わりに ::class を使用してください。

定義先: yii\base\BaseObject::className()

このクラスの完全修飾名を返します。

public static string className ( )
戻り値 string

このクラスの完全修飾名。

                public static function className()
{
    return get_called_class();
}

            
createPermission() public メソッド

新しいPermissionオブジェクトを作成します。

新しく作成されたパーミッションはまだRBACシステムに追加されていません。必要なデータを入力し、add() を呼び出してシステムに追加する必要があります。

public yii\rbac\Permission createPermission ( $name )
$name string

パーミッション名

戻り値 yii\rbac\Permission

新しいPermissionオブジェクト

                public function createPermission($name)
{
    $permission = new Permission();
    $permission->name = $name;
    return $permission;
}

            
createRole() public メソッド

新しいRoleオブジェクトを作成します。

新しく作成されたロールはまだRBACシステムに追加されていません。必要なデータを入力し、add() を呼び出してシステムに追加する必要があります。

public yii\rbac\Role createRole ( $name )
$name string

ロール名

戻り値 yii\rbac\Role

新しいRoleオブジェクト

                public function createRole($name)
{
    $role = new Role();
    $role->name = $name;
    return $role;
}

            
detachBehavior() public メソッド

定義先: yii\base\Component::detachBehavior()

コンポーネントからビヘイビアをデタッチします。

ビヘイビアのyii\base\Behavior::detach()メソッドが呼び出されます。

public yii\base\Behavior|null detachBehavior ( $name )
$name string

ビヘイビアの名前。

戻り値 yii\base\Behavior|null

デタッチされたビヘイビア。ビヘイビアが存在しない場合はNull。

                public function detachBehavior($name)
{
    $this->ensureBehaviors();
    if (isset($this->_behaviors[$name])) {
        $behavior = $this->_behaviors[$name];
        unset($this->_behaviors[$name]);
        $behavior->detach();
        return $behavior;
    }
    return null;
}

            
detachBehaviors() public メソッド

定義先: yii\base\Component::detachBehaviors()

コンポーネントからすべてのビヘイビアをデタッチします。

public void detachBehaviors ( )

                public function detachBehaviors()
{
    $this->ensureBehaviors();
    foreach ($this->_behaviors as $name => $behavior) {
        $this->detachBehavior($name);
    }
}

            
ensureBehaviors() public メソッド

定義先: yii\base\Component::ensureBehaviors()

behaviors()で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。

public void ensureBehaviors ( )

                public function ensureBehaviors()
{
    if ($this->_behaviors === null) {
        $this->_behaviors = [];
        foreach ($this->behaviors() as $name => $behavior) {
            $this->attachBehaviorInternal($name, $behavior);
        }
    }
}

            
executeRule() protected メソッド

指定された認証アイテムに関連付けられたルールを実行します。

アイテムがルールを指定していない場合、このメソッドはtrueを返します。それ以外の場合は、yii\rbac\Rule::execute()の値を返します。

protected boolean executeRule ( $user, $item, $params )
$user string|integer

ユーザーID。整数またはユーザーの一意の識別子を表現する文字列である必要があります。yii\web\User::$idを参照してください。

$item yii\rbac\Item

ルールを実行する必要がある認証アイテム

$params array

yii\rbac\CheckAccessInterface::checkAccess()に渡され、ルールに渡されるパラメータ

戻り値 boolean

yii\rbac\Rule::execute()の戻り値。認証アイテムがルールを指定していない場合は、trueが返されます。

例外 yii\base\InvalidConfigException

認証アイテムに無効なルールがある場合。

                protected function executeRule($user, $item, $params)
{
    if ($item->ruleName === null) {
        return true;
    }
    $rule = $this->getRule($item->ruleName);
    if ($rule instanceof Rule) {
        return $rule->execute($user, $item, $params);
    }
    throw new InvalidConfigException("Rule not found: {$item->ruleName}");
}

            
getAssignment() public abstract メソッド

定義先: yii\rbac\ManagerInterface::getAssignment()

ロールとユーザーに関する割り当て情報を返します。

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

ロール名

$userId string|integer

ユーザーID(yii\web\User::$idを参照)

戻り値 yii\rbac\Assignment|null

割り当て情報。ロールがユーザーに割り当てられていない場合はNullが返されます。

                public function getAssignment($roleName, $userId);

            
getAssignments() public abstract method

定義位置: yii\rbac\ManagerInterface::getAssignments()

指定されたユーザーのすべてのロール割り当て情報を返します。

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

ユーザーID(yii\web\User::$idを参照)

戻り値 yii\rbac\Assignment[]

ロール名でインデックスされた割り当て。ユーザーにロールが割り当てられていない場合は、空の配列が返されます。

                public function getAssignments($userId);

            
getBehavior() public method

定義位置: yii\base\Component::getBehavior()

名前付きビヘイビアオブジェクトを返します。

public yii\base\Behavior|null getBehavior ( $name )
$name string

ビヘイビア名

戻り値 yii\base\Behavior|null

ビヘイビアオブジェクト、またはビヘイビアが存在しない場合はnull

                public function getBehavior($name)
{
    $this->ensureBehaviors();
    return isset($this->_behaviors[$name]) ? $this->_behaviors[$name] : null;
}

            
getBehaviors() public method

定義位置: yii\base\Component::getBehaviors()

このコンポーネントにアタッチされているすべてのビヘイビアを返します。

public yii\base\Behavior[] getBehaviors ( )
戻り値 yii\base\Behavior[]

このコンポーネントにアタッチされているビヘイビアのリスト

                public function getBehaviors()
{
    $this->ensureBehaviors();
    return $this->_behaviors;
}

            
getChildRoles() public abstract method (バージョン2.0.10から利用可能)

定義位置: yii\rbac\ManagerInterface::getChildRoles()

指定されたロールの子ロールを返します。深さは制限されません。

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

子ロールを取得するロール名

戻り値 yii\rbac\Role[]

子ロール。配列はロール名でインデックスされています。最初の要素は親ロール自体のインスタンスです。

例外 yii\base\InvalidParamException

$roleNameで取得しようとしたロールが見つからなかった場合

                public function getChildRoles($roleName);

            
getChildren() public abstract method

定義位置: yii\rbac\ManagerInterface::getChildren()

子パーミッションと/またはロールを返します。

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

親名

戻り値 yii\rbac\Item[]

子パーミッションおよび/またはロール

                public function getChildren($name);

            
getDefaultRoleInstances() public method (バージョン2.0.12から利用可能)

Roleオブジェクトの配列としてdefaultRolesを返します。

public yii\rbac\Role[] getDefaultRoleInstances ( )
戻り値 yii\rbac\Role[]

デフォルトロール。配列はロール名でインデックスされています。

                public function getDefaultRoleInstances()
{
    $result = [];
    foreach ($this->defaultRoles as $roleName) {
        $result[$roleName] = $this->createRole($roleName);
    }
    return $result;
}

            
getDefaultRoles() public method (バージョン2.0.14から利用可能)

デフォルトのロールを取得します

public string[] getDefaultRoles ( )
戻り値 string[]

デフォルトロール

                public function getDefaultRoles()
{
    return $this->defaultRoles;
}

            
getItem() protected abstract method

名前付き認証アイテムを返します。

protected abstract yii\rbac\Item|null getItem ( $name )
$name string

認証アイテム名。

戻り値 yii\rbac\Item|null

指定された名前に対応する認証アイテム。そのようなアイテムがない場合はnullを返します。

                abstract protected function getItem($name);

            
getItems() protected abstract method

指定された型のアイテムを返します。

protected abstract yii\rbac\Item[] getItems ( $type )
$type 整数

認証アイテムの種類(yii\rbac\Item::TYPE_ROLEまたはyii\rbac\Item::TYPE_PERMISSIONのいずれか)

戻り値 yii\rbac\Item[]

指定された種類の認証アイテム。

                abstract protected function getItems($type);

            
getPermission() public method

名前付きパーミッションを返します。

public yii\rbac\Permission|null getPermission ( $name )
$name string

パーミッション名。

戻り値 yii\rbac\Permission|null

指定された名前に対応するパーミッション。そのようなパーミッションがない場合はnullを返します。

                public function getPermission($name)
{
    $item = $this->getItem($name);
    return $item instanceof Item && $item->type == Item::TYPE_PERMISSION ? $item : null;
}

            
getPermissions() public method

システム内のすべてのパーミッションを返します。

public yii\rbac\Permission[] getPermissions ( )
戻り値 yii\rbac\Permission[]

システム内のすべてのパーミッション。配列はパーミッション名でインデックスされています。

                public function getPermissions()
{
    return $this->getItems(Item::TYPE_PERMISSION);
}

            
getPermissionsByRole() public abstract method

定義位置: yii\rbac\ManagerInterface::getPermissionsByRole()

指定されたロールが表すすべてのパーミッションを返します。

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

ロール名

戻り値 yii\rbac\Permission[]

ロールが表すすべてのパーミッション。配列はパーミッション名でインデックスされています。

                public function getPermissionsByRole($roleName);

            
getPermissionsByUser() public abstract method

定義位置: yii\rbac\ManagerInterface::getPermissionsByUser()

ユーザーが持つすべてのパーミッションを返します。

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

ユーザーID(yii\web\User::$idを参照)

戻り値 yii\rbac\Permission[]

ユーザーが持つすべてのパーミッション。配列はパーミッション名でインデックスされています。

                public function getPermissionsByUser($userId);

            
getRole() public method

名前付きロールを返します。

public yii\rbac\Role|null getRole ( $name )
$name string

ロール名。

戻り値 yii\rbac\Role|null

指定された名前に対応するロール。そのようなロールがない場合はnullを返します。

                public function getRole($name)
{
    $item = $this->getItem($name);
    return $item instanceof Item && $item->type == Item::TYPE_ROLE ? $item : null;
}

            
getRoles() public method

システム内のすべてのロールを返します。

public yii\rbac\Role[] getRoles ( )
戻り値 yii\rbac\Role[]

システム内のすべてのロール。配列はロール名でインデックスされています。

                public function getRoles()
{
    return $this->getItems(Item::TYPE_ROLE);
}

            
getRolesByUser() public abstract method

定義位置: yii\rbac\ManagerInterface::getRolesByUser()

assign()を介してユーザーに割り当てられているロールを返します。

ユーザーに直接割り当てられていない子ロールは返されません。

public abstract yii\rbac\Role[] getRolesByUser ( $userId )
$userId string|integer

ユーザーID(yii\web\User::$idを参照)

戻り値 yii\rbac\Role[]

ユーザーに直接割り当てられたすべてのロール。配列はロール名でインデックスされています。

                public function getRolesByUser($userId);

            
getRule() public abstract method

定義位置: yii\rbac\ManagerInterface::getRule()

指定された名前のルールを返します。

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

ルール名

戻り値 yii\rbac\Rule|null

ルールオブジェクト、または指定された名前に対応するルールがない場合はnull。

                public function getRule($name);

            
getRules() public abstract method

定義位置: yii\rbac\ManagerInterface::getRules()

システムで使用可能なすべてのルールを返します。

public abstract yii\rbac\Rule[] getRules ( )
戻り値 yii\rbac\Rule[]

ルール名でインデックス付けされたルール。

                public function getRules();

            
getUserIdsByRole() public abstract method (version 2.0.7から利用可能)

定義位置: yii\rbac\ManagerInterface::getUserIdsByRole()

指定されたロールに割り当てられているすべてのユーザーIDを返します。

public abstract array getUserIdsByRole ( $roleName )
$roleName string
戻り値 array

ユーザーID文字列の配列

                public function getUserIdsByRole($roleName);

            
hasChild() public abstract method

定義位置: yii\rbac\ManagerInterface::hasChild()

親に対して子が既に存在するかどうかを示す値を返します。

public abstract boolean hasChild ( $parent, $child )
$parent yii\rbac\Item
$child yii\rbac\Item
戻り値 boolean

$child$parentの子であるかどうか。

                public function hasChild($parent, $child);

            
hasEventHandlers() public method

定義位置: yii\base\Component::hasEventHandlers()

名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。

public boolean hasEventHandlers ( $name )
$name string

イベント名。

戻り値 boolean

イベントにハンドラーがアタッチされているかどうか。

                public function hasEventHandlers($name)
{
    $this->ensureBehaviors();
    if (!empty($this->_events[$name])) {
        return true;
    }
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (!empty($handlers) && StringHelper::matchWildcard($wildcard, $name)) {
            return true;
        }
    }
    return Event::hasHandlers($this, $name);
}

            
hasMethod() public method

定義位置: yii\base\Component::hasMethod()

メソッドが定義されているかどうかを示す値を返します。

メソッドは、以下の場合に定義されています。

  • クラスが指定された名前のメソッドを持っている場合
  • アタッチされたビヘイビアが指定された名前のメソッドを持っている場合($checkBehaviorsがtrueの場合)。
public boolean hasMethod ( $name, $checkBehaviors true )
$name string

プロパティ名

$checkBehaviors boolean

ビヘイビアのメソッドをこのコンポーネントのメソッドとして扱うかどうか。

戻り値 boolean

メソッドが定義されているかどうか。

                public function hasMethod($name, $checkBehaviors = true)
{
    if (method_exists($this, $name)) {
        return true;
    } elseif ($checkBehaviors) {
        $this->ensureBehaviors();
        foreach ($this->_behaviors as $behavior) {
            if ($behavior->hasMethod($name)) {
                return true;
            }
        }
    }
    return false;
}

            
hasNoAssignments() protected method (version 2.0.11から利用可能)

$assignments配列が空で、$defaultRolesプロパティも空かどうかを確認します。

protected boolean hasNoAssignments ( array $assignments )
$assignments yii\rbac\Assignment[]

ユーザーの割り当ての配列。

戻り値 boolean

$assignments配列が空であり、$defaultRolesプロパティも空の場合、trueを返します。

                protected function hasNoAssignments(array $assignments)
{
    return empty($assignments) && empty($this->defaultRoles);
}

            
hasProperty() public method

定義位置: yii\base\Component::hasProperty()

このコンポーネントにプロパティが定義されているかどうかを示す値を返します。

プロパティは、以下の場合に定義されています。

  • クラスが指定された名前と関連付けられたゲッターまたはセッターメソッドを持っている場合(この場合、プロパティ名はケースインセンシティブです)。
  • クラスに、指定された名前のメンバー変数がある場合(`$checkVars`がtrueの場合)。
  • アタッチされたビヘイビアが指定された名前のプロパティを持っている場合($checkBehaviorsがtrueの場合)。

参照

public boolean hasProperty ( $name, $checkVars true, $checkBehaviors true )
$name string

プロパティ名

$checkVars boolean

メンバ変数をプロパティとして扱うかどうか

$checkBehaviors boolean

ビヘイビアのプロパティをこのコンポーネントのプロパティとして扱うかどうか

戻り値 boolean

プロパティが定義されているかどうか。

                public function hasProperty($name, $checkVars = true, $checkBehaviors = true)
{
    return $this->canGetProperty($name, $checkVars, $checkBehaviors) || $this->canSetProperty($name, false, $checkBehaviors);
}

            
init() public method

定義位置: yii\base\BaseObject::init()

オブジェクトを初期化します。

このメソッドは、オブジェクトが指定された設定で初期化された後、コンストラクターの最後に呼び出されます。

public void init ( )

                public function init()
{
}

            
off() publicメソッド

定義済み: yii\base\Component::off()

このコンポーネントから既存のイベントハンドラーをデタッチします。

このメソッドは、on()の反対の動作をします。

注記: イベント名にワイルドカードパターンが渡された場合、このワイルドカードで登録されたハンドラのみが削除され、このワイルドカードと一致するプレーン名で登録されたハンドラは残ります。

参照: on()

public boolean off ( $name, $handler null )
$name string

イベント名

$handler callable|null

削除するイベントハンドラ。nullの場合、指定されたイベントにアタッチされているすべてのハンドラが削除されます。

戻り値 boolean

ハンドラが見つかり、デタッチされた場合

                public function off($name, $handler = null)
{
    $this->ensureBehaviors();
    if (empty($this->_events[$name]) && empty($this->_eventWildcards[$name])) {
        return false;
    }
    if ($handler === null) {
        unset($this->_events[$name], $this->_eventWildcards[$name]);
        return true;
    }
    $removed = false;
    // plain event names
    if (isset($this->_events[$name])) {
        foreach ($this->_events[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_events[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_events[$name] = array_values($this->_events[$name]);
            return true;
        }
    }
    // wildcard event names
    if (isset($this->_eventWildcards[$name])) {
        foreach ($this->_eventWildcards[$name] as $i => $event) {
            if ($event[0] === $handler) {
                unset($this->_eventWildcards[$name][$i]);
                $removed = true;
            }
        }
        if ($removed) {
            $this->_eventWildcards[$name] = array_values($this->_eventWildcards[$name]);
            // remove empty wildcards to save future redundant regex checks:
            if (empty($this->_eventWildcards[$name])) {
                unset($this->_eventWildcards[$name]);
            }
        }
    }
    return $removed;
}

            
on() publicメソッド

定義済み: yii\base\Component::on()

イベントにイベントハンドラーをアタッチします。

イベントハンドラは有効なPHPコールバックである必要があります。いくつかの例を以下に示します。

function ($event) { ... }         // anonymous function
[$object, 'handleClick']          // $object->handleClick()
['Page', 'handleClick']           // Page::handleClick()
'handleClick'                     // global function handleClick()

イベントハンドラは、以下のシグネチャで定義する必要があります。

function ($event)

ここで、$eventは、イベントに関連付けられたパラメータを含むyii\base\Eventオブジェクトです。

2.0.14以降、イベント名をワイルドカードパターンとして指定できます。

$component->on('event.group.*', function ($event) {
    Yii::trace($event->name . ' is triggered.');
});

参照: off()

public void on ( $name, $handler, $data null, $append true )
$name string

イベント名。

$handler callable

イベントハンドラ

$data mixed

イベントがトリガーされたときにイベントハンドラに渡されるデータ。イベントハンドラが呼び出されたとき、このデータはyii\base\Event::$dataからアクセスできます。

$append boolean

既存のハンドラリストの最後に新しいイベントハンドラを追加するかどうか。falseの場合、新しいハンドラは既存のハンドラリストの先頭に挿入されます。

                public function on($name, $handler, $data = null, $append = true)
{
    $this->ensureBehaviors();
    if (strpos($name, '*') !== false) {
        if ($append || empty($this->_eventWildcards[$name])) {
            $this->_eventWildcards[$name][] = [$handler, $data];
        } else {
            array_unshift($this->_eventWildcards[$name], [$handler, $data]);
        }
        return;
    }
    if ($append || empty($this->_events[$name])) {
        $this->_events[$name][] = [$handler, $data];
    } else {
        array_unshift($this->_events[$name], [$handler, $data]);
    }
}

            
remove() publicメソッド

RBACシステムからロール、パーミッション、またはルールを削除します。

public boolean remove ( $object )
$object yii\rbac\Role|yii\rbac\Permission|yii\rbac\Rule
戻り値 boolean

ロール、パーミッション、またはルールが正常に削除されたかどうか

                public function remove($object)
{
    if ($object instanceof Item) {
        return $this->removeItem($object);
    } elseif ($object instanceof Rule) {
        return $this->removeRule($object);
    }
    throw new InvalidArgumentException('Removing unsupported object type.');
}

            
removeAll() public abstractメソッド

定義済み: yii\rbac\ManagerInterface::removeAll()

ロール、パーミッション、ルール、割り当てを含むすべての承認データを削除します。

public abstract void removeAll ( )

                public function removeAll();

            
removeAllAssignments() public abstractメソッド

定義済み: yii\rbac\ManagerInterface::removeAllAssignments()

すべてのロール割り当てを削除します。

public abstract void removeAllAssignments ( )

                public function removeAllAssignments();

            
removeAllPermissions() public abstractメソッド

定義済み: yii\rbac\ManagerInterface::removeAllPermissions()

すべてのパーミッションを削除します。

すべての親子の関係はそれに応じて調整されます。

public abstract void removeAllPermissions ( )

                public function removeAllPermissions();

            
removeAllRoles() public abstractメソッド

定義済み: yii\rbac\ManagerInterface::removeAllRoles()

すべてのロールを削除します。

すべての親子の関係はそれに応じて調整されます。

public abstract void removeAllRoles ( )

                public function removeAllRoles();

            
removeAllRules() public abstractメソッド

定義済み: yii\rbac\ManagerInterface::removeAllRules()

すべてのルールを削除します。

ルールを持つすべてのロールとパーミッションは、それに応じて調整されます。

public abstract void removeAllRules ( )

                public function removeAllRules();

            
removeChild() public abstractメソッド

定義済み: yii\rbac\ManagerInterface::removeChild()

親から子を除去します。

注記: 子アイテムは削除されません。親子の関係のみが削除されます。

public abstract boolean removeChild ( $parent, $child )
$parent yii\rbac\Item
$child yii\rbac\Item
戻り値 boolean

削除が成功したかどうか

                public function removeChild($parent, $child);

            
removeChildren() public abstractメソッド

定義済み: yii\rbac\ManagerInterface::removeChildren()

親からすべての子を除去します。

注記: 子アイテムは削除されません。親子の関係のみが削除されます。

public abstract boolean removeChildren ( $parent )
$parent yii\rbac\Item
戻り値 boolean

削除が成功したかどうか

                public function removeChildren($parent);

            
removeItem() protected abstractメソッド

RBACシステムから認証アイテムを削除します。

protected abstract boolean removeItem ( $item )
$item yii\rbac\Item

削除するアイテム

戻り値 boolean

ロールまたはパーミッションが正常に削除されたかどうか

例外 例外

データ検証または保存に失敗した場合(ロールまたはパーミッションの名前が一意でないなど)

                abstract protected function removeItem($item);

            
removeRule() protected abstract メソッド

RBACシステムからルールを削除します。

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

削除するルール

戻り値 boolean

ルールが正常に削除されたかどうか

例外 例外

データ検証または保存に失敗した場合(ルールの名前が一意でないなど)

                abstract protected function removeRule($rule);

            
revoke() public abstract メソッド

定義先: yii\rbac\ManagerInterface::revoke()

ユーザーからロールを取り消します。

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

ユーザーID(yii\web\User::$idを参照)

戻り値 boolean

取り消しが成功したかどうか

                public function revoke($role, $userId);

            
revokeAll() public abstract メソッド

定義先: yii\rbac\ManagerInterface::revokeAll()

ユーザーからすべてのロールを取り消します。

public abstract boolean revokeAll ( $userId )
$userId mixed

ユーザーID(yii\web\User::$idを参照)

戻り値 boolean

取り消しが成功したかどうか

                public function revokeAll($userId);

            
setDefaultRoles() public メソッド (バージョン 2.0.14 から利用可能)

デフォルトのロールを設定します

public void setDefaultRoles ( $roles )
$roles string[]|Closure

ロールの配列、またはそれを返すクロージャ

例外 yii\base\InvalidArgumentException

$roles が配列でもクロージャでもない場合

例外 yii\base\InvalidValueException

クロージャの戻り値が配列でない場合

                public function setDefaultRoles($roles)
{
    if (is_array($roles)) {
        $this->defaultRoles = $roles;
    } elseif ($roles instanceof \Closure) {
        $roles = call_user_func($roles);
        if (!is_array($roles)) {
            throw new InvalidValueException('Default roles closure must return an array');
        }
        $this->defaultRoles = $roles;
    } else {
        throw new InvalidArgumentException('Default roles must be either an array or a callable');
    }
}

            
trigger() public メソッド

定義先: yii\base\Component::trigger()

イベントをトリガーします。

このメソッドはイベントの発生を表します。クラスレベルのハンドラを含む、イベントにアタッチされたすべてのハンドラを呼び出します。

public void trigger ( $name, yii\base\Event $event null )
$name string

イベント名。

$event yii\base\Event|null

イベントインスタンス。設定されていない場合、デフォルトの yii\base\Event オブジェクトが作成されます。

                public function trigger($name, Event $event = null)
{
    $this->ensureBehaviors();
    $eventHandlers = [];
    foreach ($this->_eventWildcards as $wildcard => $handlers) {
        if (StringHelper::matchWildcard($wildcard, $name)) {
            $eventHandlers[] = $handlers;
        }
    }
    if (!empty($this->_events[$name])) {
        $eventHandlers[] = $this->_events[$name];
    }
    if (!empty($eventHandlers)) {
        $eventHandlers = call_user_func_array('array_merge', $eventHandlers);
        if ($event === null) {
            $event = new Event();
        }
        if ($event->sender === null) {
            $event->sender = $this;
        }
        $event->handled = false;
        $event->name = $name;
        foreach ($eventHandlers as $handler) {
            $event->data = $handler[1];
            call_user_func($handler[0], $event);
            // stop further handling if the event is handled
            if ($event->handled) {
                return;
            }
        }
    }
    // invoke class-level attached handlers
    Event::trigger($this, $name, $event);
}

            
update() public メソッド

システム内の指定されたロール、パーミッション、またはルールを更新します。

public boolean update ( $name, $object )
$name string

ロール、パーミッション、またはルールの古い名前

$object yii\rbac\Role|yii\rbac\Permission|yii\rbac\Rule
戻り値 boolean

更新が成功したかどうか

例外 例外

データ検証または保存に失敗した場合(ロールまたはパーミッションの名前が一意でないなど)

                public function update($name, $object)
{
    if ($object instanceof Item) {
        if ($object->ruleName && $this->getRule($object->ruleName) === null) {
            $rule = \Yii::createObject($object->ruleName);
            $rule->name = $object->ruleName;
            $this->addRule($rule);
        }
        return $this->updateItem($name, $object);
    } elseif ($object instanceof Rule) {
        return $this->updateRule($name, $object);
    }
    throw new InvalidArgumentException('Updating unsupported object type.');
}

            
updateItem() protected abstract メソッド

RBACシステム内の認証アイテムを更新します。

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

更新されるアイテムの名前

$item yii\rbac\Item

更新されたアイテム

戻り値 boolean

認証アイテムが正常に更新されたかどうか

例外 例外

データ検証または保存に失敗した場合(ロールまたはパーミッションの名前が一意でないなど)

                abstract protected function updateItem($name, $item);

            
updateRule() protected abstract メソッド

RBACシステムにルールを更新します。

protected abstract boolean updateRule ( $name, $rule )
$name string

更新されるルールの名前

$rule yii\rbac\Rule

更新されたルール

戻り値 boolean

ルールが正常に更新されたかどうか

例外 例外

データ検証または保存に失敗した場合(ルールの名前が一意でないなど)

                abstract protected function updateRule($name, $rule);