0 フォロワー

クラス yii\base\Behavior

継承yii\base\Behavior » yii\base\BaseObject
実装yii\base\Configurable
サブクラスyii\base\ActionFilter, yii\behaviors\AttributeBehavior, yii\behaviors\AttributeTypecastBehavior, yii\behaviors\AttributesBehavior, yii\behaviors\BlameableBehavior, yii\behaviors\CacheableWidgetBehavior, yii\behaviors\OptimisticLockBehavior, yii\behaviors\SluggableBehavior, yii\behaviors\TimestampBehavior, yii\filters\AccessControl, yii\filters\AjaxFilter, yii\filters\ContentNegotiator, yii\filters\Cors, yii\filters\HostControl, yii\filters\HttpCache, yii\filters\PageCache, yii\filters\RateLimiter, yii\filters\VerbFilter, yii\filters\auth\AuthMethod, yii\filters\auth\CompositeAuth, yii\filters\auth\HttpBasicAuth, yii\filters\auth\HttpBearerAuth, yii\filters\auth\HttpHeaderAuth, yii\filters\auth\QueryParamAuth
利用可能なバージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/base/Behavior.php

Behaviorは、すべてのビヘイビアクラスの基底クラスです。

ビヘイビアは、既存のコンポーネントのコードを修正せずにその機能を拡張するために使用できます。特に、自身のメソッドとプロパティをコンポーネントに「注入」し、コンポーネントを介して直接アクセスできるようにできます。また、コンポーネントでトリガーされたイベントに応答することで、通常のコード実行をインターセプトできます。

Behaviorに関する詳細および使用方法については、ビヘイビアに関するガイド記事を参照してください。

パブリックプロパティ

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

プロパティ 説明 定義元
$owner yii\base\Component|null このビヘイビアのオーナー yii\base\Behavior

パブリックメソッド

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

メソッド 説明 定義元
__call() クラスメソッドではない名前付きメソッドを呼び出します。 yii\base\BaseObject
__construct() コンストラクタ。 yii\base\BaseObject
__get() オブジェクトプロパティの値を返します。 yii\base\BaseObject
__isset() プロパティが設定されているか、つまり定義されていてnullでないかを確認します。 yii\base\BaseObject
__set() オブジェクトプロパティの値を設定します。 yii\base\BaseObject
__unset() オブジェクトプロパティをnullに設定します。 yii\base\BaseObject
attach() ビヘイビアオブジェクトをコンポーネントにアタッチします。 yii\base\Behavior
canGetProperty() プロパティが読み取り可能かどうかを示す値を返します。 yii\base\BaseObject
canSetProperty() プロパティを設定可能かどうかを示す値を返します。 yii\base\BaseObject
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
detach() ビヘイビアオブジェクトをコンポーネントからデタッチします。 yii\base\Behavior
events() $owner のイベントのイベントハンドラを宣言します。 yii\base\Behavior
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\BaseObject
hasProperty() プロパティが定義されているかどうかを示す値を返します。 yii\base\BaseObject
init() オブジェクトを初期化します。 yii\base\BaseObject

プロパティの詳細

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

$owner パブリックプロパティ

このビヘイビアのオーナー

メソッドの詳細

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

__call() パブリックメソッド

定義元: yii\base\BaseObject::__call()

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

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

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

メソッド名

$params array

メソッドのパラメータ

return mixed

メソッドの戻り値

throws yii\base\UnknownMethodException

未知のメソッドを呼び出した場合

                public function __call($name, $params)
{
    throw new UnknownMethodException('Calling unknown method: ' . get_class($this) . "::$name()");
}

            
__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\BaseObject::__get()

オブジェクトプロパティの値を返します。

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

関連項目 __set()

public mixed __get ( $name )
$name string

$name

return mixed

プロパティ名

throws yii\base\UnknownPropertyException

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

throws yii\base\InvalidCallException

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

                public function __get($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter();
    } elseif (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\BaseObject::__isset()

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

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

プロパティが定義されていない場合は、false が返されることに注意してください。

関連項目 https://www.php.net/manual/en/function.isset.php

public boolean __isset ( $name )
$name string

$name

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

boolean

                public function __isset($name)
{
    $getter = 'get' . $name;
    if (method_exists($this, $getter)) {
        return $this->$getter() !== null;
    }
    return false;
}

            
__set() public メソッド

定義元: yii\base\BaseObject::__set()

オブジェクトプロパティの値を設定します。

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

関連項目 __get()

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

$name

$value mixed

プロパティ名

throws yii\base\UnknownPropertyException

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

throws yii\base\InvalidCallException

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

                public function __set($name, $value)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter($value);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Setting read-only property: ' . get_class($this) . '::' . $name);
    } else {
        throw new UnknownPropertyException('Setting unknown property: ' . get_class($this) . '::' . $name);
    }
}

            
__unset() public メソッド

定義元: yii\base\BaseObject::__unset()

オブジェクトプロパティをnullに設定します。

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

プロパティが定義されていない場合、このメソッドは何もしないことに注意してください。 プロパティが読み取り専用の場合、例外がスローされます。

関連項目 https://www.php.net/manual/en/function.unset.php

public void __unset ( $name )
$name string

$name

throws yii\base\InvalidCallException

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

                public function __unset($name)
{
    $setter = 'set' . $name;
    if (method_exists($this, $setter)) {
        $this->$setter(null);
    } elseif (method_exists($this, 'get' . $name)) {
        throw new InvalidCallException('Unsetting read-only property: ' . get_class($this) . '::' . $name);
    }
}

            
attach() public メソッド

ビヘイビアオブジェクトをコンポーネントにアタッチします。

デフォルトの実装では、$owner プロパティを設定し、events() で宣言されているイベントハンドラをアタッチします。このメソッドをオーバーライドする場合は、必ず親の実装を呼び出してください。

public void attach ( $owner )
$owner $owner

このビヘイビアがアタッチされるコンポーネント。

                public function attach($owner)
{
    $this->owner = $owner;
    foreach ($this->events() as $event => $handler) {
        $this->_attachedEvents[$event] = $handler;
        $owner->on($event, is_string($handler) ? [$this, $handler] : $handler);
    }
}

            
canGetProperty() public メソッド

定義元: yii\base\BaseObject::canGetProperty()

プロパティが読み取り可能かどうかを示す値を返します。

プロパティは、次の場合に読み取り可能になります。

  • クラスに指定された名前に関連付けられたgetterメソッドがある場合(この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスに指定された名前のメンバ変数がある場合($checkVars が true の場合)。

関連項目 canSetProperty()

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

$name

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

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

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

プロパティを読み取ることができるかどうか

                public function canGetProperty($name, $checkVars = true)
{
    return method_exists($this, 'get' . $name) || $checkVars && property_exists($this, $name);
}

            
canSetProperty() public メソッド

定義元: yii\base\BaseObject::canSetProperty()

プロパティを設定可能かどうかを示す値を返します。

プロパティは、次の場合に書き込み可能になります。

  • クラスに指定された名前に関連付けられたsetterメソッドがある場合(この場合、プロパティ名は大文字と小文字を区別しません)。
  • クラスに指定された名前のメンバ変数がある場合($checkVars が true の場合)。

関連項目 canGetProperty()

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

$name

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

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

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

プロパティを書き込むことができるかどうか

                public function canSetProperty($name, $checkVars = true)
{
    return method_exists($this, 'set' . $name) || $checkVars && property_exists($this, $name);
}

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

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

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

public static string className ( )
return string

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

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

            
detach() public method

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

デフォルトの実装では、$ownerプロパティをunsetし、events()で宣言されたイベントハンドラをデタッチします。このメソッドをオーバーライドする場合は、必ず親の実装を呼び出してください。

public void detach ( )

                public function detach()
{
    if ($this->owner) {
        foreach ($this->_attachedEvents as $event => $handler) {
            $this->owner->off($event, is_string($handler) ? [$this, $handler] : $handler);
        }
        $this->_attachedEvents = [];
        $this->owner = null;
    }
}

            
events() public method

$owner のイベントのイベントハンドラを宣言します。

子クラスは、$ownerコンポーネントのイベントにアタッチするPHPコールバックを宣言するために、このメソッドをオーバーライドできます。

コールバックは、ビヘイビアがオーナーにアタッチされると$ownerのイベントにアタッチされ、ビヘイビアがコンポーネントからデタッチされるとイベントからデタッチされます。

コールバックは、以下のいずれかになります。

  • このビヘイビアのメソッド:'handleClick'[$this, 'handleClick']と同等
  • オブジェクトメソッド:[$object, 'handleClick']
  • 静的メソッド:['Page', 'handleClick']
  • 無名関数:function ($event) { ... }

以下は例です。

[
    Model::EVENT_BEFORE_VALIDATE => 'myBeforeValidate',
    Model::EVENT_AFTER_VALIDATE => 'myAfterValidate',
]
public array events ( )
return array

イベント(配列キー)と対応するイベントハンドラメソッド(配列値)。

                public function events()
{
    return [];
}

            
hasMethod() public method

定義元: yii\base\BaseObject::hasMethod()

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

デフォルトの実装は、PHP関数method_exists()の呼び出しです。PHPのマジックメソッド__call()を実装した場合は、このメソッドをオーバーライドできます。

public boolean hasMethod ( $name )
$name string

メソッド名

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

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

                public function hasMethod($name)
{
    return method_exists($this, $name);
}

            
hasProperty() public method

定義元: yii\base\BaseObject::hasProperty()

プロパティが定義されているかどうかを示す値を返します。

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

  • クラスが指定された名前に関連付けられたgetterまたはsetterメソッドを持っている場合(この場合、プロパティ名は大小文字を区別しません)。
  • クラスに指定された名前のメンバ変数がある場合($checkVars が true の場合)。

参照

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

$name

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

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

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

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

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

            
init() public method

定義元: yii\base\BaseObject::init()

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

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

public void init ( )

                public function init()
{
}