1 フォロワー

クラス yii\widgets\MaskedInput

継承yii\widgets\MaskedInput » yii\widgets\InputWidget » yii\base\Widget » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurableyii\base\ViewContextInterface
利用可能バージョン2.0
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/widgets/MaskedInput.php

MaskedInput は、マスクされたテキスト入力フィールドを生成します。

MaskedInput は、yii\helpers\Html::textInput() と似ていますが、電話番号や社会保障番号など、ユーザーが適切にフォーマットされたデータを入力することを強制するために、入力マスクが使用されます。

MaskedInput を使用するには、$mask プロパティを設定する必要があります。次の例は、MaskedInput を使用して電話番号を収集する方法を示しています。

echo MaskedInput::widget([
    'name' => 'phone',
    'mask' => '999-999-9999',
]);

yii\widgets\ActiveFormwidget() メソッドを使用して、このウィジェットを使用することもできます。例えば、次のようにします。

<?= $form->field($model, 'from_date')->widget(\yii\widgets\MaskedInput::class, [
    'mask' => '999-999-9999',
]) ?>

マスクされたテキストフィールドは、jQuery input masked plugin に基づいて実装されています。

公開プロパティ

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

プロパティ 説明 定義元
$_hashVar 文字列 pluginOptions を格納するためのハッシュされた変数 yii\widgets\MaskedInput
$_jsCallbacks 文字列[] inputmask のプロパティにはコールバックを含めることができます。 yii\widgets\MaskedInput
$aliases 配列 使用するカスタムエイリアス。 yii\widgets\MaskedInput
$attribute 文字列|null このウィジェットが関連付けられているモデル属性。 yii\widgets\InputWidget
$autoIdPrefix 文字列 自動生成されたウィジェットIDへのプレフィックス。 yii\base\Widget
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされている動作のリスト。 yii\base\Component
$clientOptions 配列 input mask プラグインの JQuery プラグインオプション。 yii\widgets\MaskedInput
$definitions 配列 使用するカスタムマスク定義。 yii\widgets\MaskedInput
$field yii\widgets\ActiveField このウィジェットのレンダリングをトリガーするアクティブ入力フィールド。 yii\widgets\InputWidget
$id 文字列|null ウィジェットのID。 yii\base\Widget
$mask 文字列|配列|yii\web\JsExpression 入力マスク(例:日付入力の場合は '99/99/9999')。 yii\widgets\MaskedInput
$model yii\base\Model|null このウィジェットが関連付けられているデータモデル。 yii\widgets\InputWidget
$name 文字列|null 入力名。 yii\widgets\InputWidget
$options 配列 入力タグのHTML属性。 yii\widgets\MaskedInput
$type 文字列 入力タグの型。 yii\widgets\MaskedInput
$value 文字列 入力値。 yii\widgets\InputWidget
$view yii\web\View ビューファイルまたはビューをレンダリングするために使用できるビューオブジェクト。 yii\base\Widget
$viewPath 文字列 このウィジェットのビューファイルを含むディレクトリ。 yii\base\Widget

保護されたプロパティ

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

プロパティ 説明 定義元

公開メソッド

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

メソッド 説明 定義元
__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
afterRun() このメソッドは、ウィジェットの実行直後に呼び出されます。 yii\base\Widget
attachBehavior() このコンポーネントに動作をアタッチします。 yii\base\Component
attachBehaviors() コンポーネントに動作のリストをアタッチします。 yii\base\Component
beforeRun() このメソッドは、ウィジェットの実行直前に呼び出されます。 yii\base\Widget
begin() ウィジェットを開始します。 yii\base\Widget
behaviors() このコンポーネントが動作する必要がある動作のリストを返します。 yii\base\Component
canGetProperty() プロパティを読み取ることができるかどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティを設定できるかどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
detachBehavior() コンポーネントから動作をデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべての動作をデタッチします。 yii\base\Component
end() ウィジェットを終了します。 yii\base\Widget
ensureBehaviors() behaviors() で宣言された動作がこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
getBehavior() 名前付き動作オブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべての動作を返します。 yii\base\Component
getId() ウィジェットのIDを返します。 yii\base\Widget
getView() ビューファイルまたはビューをレンダリングするために使用できるビューオブジェクトを返します。 yii\base\Widget
getViewPath() このウィジェットのビューファイルを含むディレクトリを返します。 yii\base\Widget
hasEventHandlers() 名前付きイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントに対してプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() ウィジェットを初期化します。 yii\widgets\MaskedInput
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
registerClientScript() 必要なクライアントスクリプトとオプションを登録します。 yii\widgets\MaskedInput
render() ビューをレンダリングします。 yii\base\Widget
renderFile() ビューファイルをレンダリングします。 yii\base\Widget
run() ウィジェットを実行します。 yii\widgets\MaskedInput
setId() ウィジェットのIDを設定します。 yii\base\Widget
setView() このウィジェットで使用されるビューオブジェクトを設定します。 yii\base\Widget
trigger() イベントをトリガーします。 yii\base\Component
widget() ウィジェットインスタンスを作成して実行します。 yii\base\Widget

保護されたメソッド

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

メソッド 説明 定義元
hasModel() yii\widgets\InputWidget
hashPluginOptions() プラグイン`clientOptions`を格納するためのハッシュ化された変数を生成します。 yii\widgets\MaskedInput
initClientOptions() クライアントオプションを初期化します。 yii\widgets\MaskedInput
renderInputHtml() HTML入力タグをレンダリングします。 yii\widgets\InputWidget

イベント

継承されたイベントを隠す

イベント 説明 定義元
EVENT_AFTER_RUN yii\base\WidgetEvent ウィジェットを実行した直後に発生するイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget
EVENT_BEFORE_RUN yii\base\WidgetEvent ウィジェットを実行する直前に発生するイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget
EVENT_INIT yii\base\Event init() を介してウィジェットが初期化されたときにトリガーされるイベント。(バージョン2.0.11以降で使用可能) yii\base\Widget

定数

継承された定数を隠す

定数 説明 定義元
PLUGIN_NAME 'inputmask' このウィジェットで使用されるjQueryプラグインの名前。 yii\widgets\MaskedInput

プロパティの詳細

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

$_hashVar protected プロパティ

pluginOptions を格納するためのハッシュされた変数

protected string $_hashVar null
$_jsCallbacks protected プロパティ

inputmask のプロパティにはコールバックを含めることができます。

protected string[] $_jsCallbacks = [
    
'oncomplete',
    
'onincomplete',
    
'oncleared',
    
'onKeyDown',
    
'onBeforeMask',
    
'onBeforePaste',
    
'onBeforeWrite',
    
'onUnMask',
    
'onKeyValidation',
    
'isComplete',
    
'preValidation',
    
'postValidation',
    
'canClearPosition',
]
$aliases public プロパティ

使用するカスタムエイリアス。`maskAlias => settings`として設定する必要があります。ここで

  • `maskAlias`は、マスクエイリアスの定義を識別するテキストを含む文字列(例:'phone')であり、
  • `settings`は、マスク記号の設定を含む配列であり、$clientOptionsに渡されるパラメーターとまったく同じです。
public array $aliases null
$clientOptions public プロパティ

input mask プラグインの JQuery プラグインオプション。

https://github.com/RobinHerbots/Inputmaskも参照してください。

public array $clientOptions = []
$definitions public プロパティ

使用するカスタムマスク定義。`maskSymbol => settings`として設定する必要があります。ここで

  • `maskSymbol`は、マスク定義を識別する文字を含む文字列であり、
  • `settings`は、以下の項目からなる配列です。
    • `validator`:文字列、JS正規表現またはJS関数。
    • `cardinality`:int、定義に対して表現され、検証される文字数を指定します。
    • `prevalidator`:配列、定義のカーディナリティに達する前に文字を検証します。
    • `definitionSymbol`:文字列、この`definitionSymbol`を使用して、他の定義から値をシフトできます。
public array $definitions null
$mask public プロパティ

入力マスク(例:日付入力の場合は'99/99/9999')。マスクで使用でき、事前定義されている文字は次のとおりです。

  • `a`:アルファベット文字(A-Z、a-z)を表します。
  • `9`:数字文字(0-9)を表します。
  • `*`:英数字文字(A-Z、a-z、0-9)を表します。
  • `[`と`]`:角括弧で囲まれたものは、オプションのユーザー入力と見なされます。$clientOptionsの`optionalmarker`設定に基づいています。

追加の定義は、$definitionsプロパティを介して設定できます。

$options public プロパティ

入力タグのHTML属性。

属性のレンダリング方法の詳細については、yii\helpers\Html::renderTagAttributes()を参照してください。

public array $options = [
    
'class' => 'form-control',
]
$type public プロパティ(バージョン2.0.6以降で使用可能)

入力タグの種類。現在、'text'と'tel'のみがサポートされています。

https://github.com/RobinHerbots/Inputmaskも参照してください。

public string $type 'text'

メソッドの詳細

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

__call() publicメソッド

定義場所: yii\base\Component::__call()

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

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

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

public mixed __call ( $name, $params )
$name 文字列

メソッド名

$params 配列

メソッドパラメータ

戻り値 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 配列

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

                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 文字列

プロパティ名

戻り値 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 文字列

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

戻り値 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 文字列

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

$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 文字列

プロパティ名

例外 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);
}

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

定義場所: yii\base\Widget::afterRun()

このメソッドは、ウィジェットの実行直後に呼び出されます。

このメソッドは、EVENT_AFTER_RUN イベントをトリガーします。メソッドの戻り値は、ウィジェットの戻り値として使用されます。

このメソッドをオーバーライドする場合は、次のようになります。

public function afterRun($result)
{
    $result = parent::afterRun($result);
    // your custom code here
    return $result;
}
public mixed afterRun ( $result )
$result mixed

ウィジェットの戻り値。

戻り値 mixed

処理されたウィジェットの結果。

                public function afterRun($result)
{
    $event = new WidgetEvent();
    $event->result = $result;
    $this->trigger(self::EVENT_AFTER_RUN, $event);
    return $event->result;
}

            
attachBehavior() publicメソッド

定義場所: yii\base\Component::attachBehavior()

このコンポーネントに動作をアタッチします。

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

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

public yii\base\Behavior attachBehavior ( $name, $behavior )
$name 文字列

ビヘイビアの名前。

$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 配列

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

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

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

定義されている場所: yii\base\Widget::beforeRun()

このメソッドは、ウィジェットの実行直前に呼び出されます。

このメソッドはEVENT_BEFORE_RUNイベントをトリガーします。メソッドの戻り値によって、ウィジェットの実行を継続するかどうかが決まります。

このメソッドをオーバーライドする際には、次のように親実装を呼び出すことを確認してください。

public function beforeRun()
{
    if (!parent::beforeRun()) {
        return false;
    }

    // your custom code here

    return true; // or false to not run the widget
}
public boolean beforeRun ( )
戻り値 boolean

ウィジェットの実行を継続するかどうか。

                public function beforeRun()
{
    $event = new WidgetEvent();
    $this->trigger(self::EVENT_BEFORE_RUN, $event);
    return $event->isValid;
}

            
begin() public staticメソッド

定義されている場所: yii\base\Widget::begin()

ウィジェットを開始します。

このメソッドは、呼び出し元のクラスのインスタンスを作成します。作成されたインスタンスに設定を適用します。end()の対応する呼び出しを後で実行する必要があります。一部のウィジェットは出力バッファリングを使用するため、出力バッファのネストを壊さないように、end()の呼び出しは同じビューで行う必要があります。

こちらも参照してください end()

public static static begin ( $config = [] )
$config 配列

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

戻り値 yii\base\Widget

新しく作成されたウィジェットインスタンス

                public static function begin($config = [])
{
    $config['class'] = get_called_class();
    /* @var $widget Widget */
    $widget = Yii::createObject($config);
    self::$stack[] = $widget;
    return $widget;
}

            
behaviors() publicメソッド

定義されている場所: yii\base\Component::behaviors()

このコンポーネントが動作する必要がある動作のリストを返します。

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

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

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

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

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

public array behaviors ( )
戻り値 配列

ビヘイビアの設定。

                public function behaviors()
{
    return [];
}

            
canGetProperty() publicメソッド

定義されている場所: yii\base\Component::canGetProperty()

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

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

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

こちらも参照してください canSetProperty()

public boolean canGetProperty ( $name, $checkVars true, $checkBehaviors true )
$name 文字列

プロパティ名

$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 文字列

プロパティ名

$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 ( )
戻り値 文字列

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

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

            
detachBehavior() publicメソッド

定義されている場所: yii\base\Component::detachBehavior()

コンポーネントから動作をデタッチします。

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

public yii\base\Behavior|null detachBehavior ( $name )
$name 文字列

ビヘイビアの名前。

戻り値 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);
    }
}

            
end() public staticメソッド

定義されている場所: yii\base\Widget::end()

ウィジェットを終了します。

ウィジェットのレンダリング結果は直接出力されることに注意してください。

こちらも参照してください begin()

public static static end ( )
戻り値 yii\base\Widget

終了されるウィジェットインスタンス。

例外 yii\base\InvalidCallException

begin()end() の呼び出しが正しくネストされていない場合

                public static function end()
{
    if (!empty(self::$stack)) {
        $widget = array_pop(self::$stack);
        $calledClass = get_called_class();
        if (Yii::$container->has($calledClass) && isset(Yii::$container->getDefinitions()[$calledClass]['class'])) {
            $calledClass = Yii::$container->getDefinitions()[$calledClass]['class'];
        }
        if (get_class($widget) === $calledClass) {
            /* @var $widget Widget */
            if ($widget->beforeRun()) {
                $result = $widget->run();
                $result = $widget->afterRun($result);
                echo $result;
            }
            return $widget;
        }
        throw new InvalidCallException('Expecting end() of ' . get_class($widget) . ', found ' . get_called_class());
    }
    throw new InvalidCallException('Unexpected ' . get_called_class() . '::end() call. A matching begin() is not found.');
}

            
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);
        }
    }
}

            
getBehavior() publicメソッド

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

名前付き動作オブジェクトを返します。

public yii\base\Behavior|null getBehavior ( $name )
$name 文字列

ビヘイビア名

戻り値 yii\base\Behavior|null

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

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

            
getBehaviors() publicメソッド

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

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

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

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

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

            
getId() publicメソッド

定義先: yii\base\Widget::getId()

ウィジェットのIDを返します。

public string|null getId ( $autoGenerate true )
$autoGenerate boolean

以前に設定されていない場合にIDを生成するかどうか

戻り値 文字列|null

ウィジェットのID。

                public function getId($autoGenerate = true)
{
    if ($autoGenerate && $this->_id === null) {
        $this->_id = static::$autoIdPrefix . static::$counter++;
    }
    return $this->_id;
}

            
getView() publicメソッド

定義先: yii\base\Widget::getView()

ビューファイルまたはビューをレンダリングするために使用できるビューオブジェクトを返します。

render() メソッドと renderFile() メソッドは、このビューオブジェクトを使用して実際のビューレンダリングを実行します。設定されていない場合、デフォルトで「view」アプリケーションコンポーネントになります。

public yii\web\View getView ( )
戻り値 yii\web\View

ビューファイルまたはビューをレンダリングするために使用できるビューオブジェクト。

                public function getView()
{
    if ($this->_view === null) {
        $this->_view = Yii::$app->getView();
    }
    return $this->_view;
}

            
getViewPath() publicメソッド

定義先: yii\base\Widget::getViewPath()

このウィジェットのビューファイルを含むディレクトリを返します。

デフォルトの実装では、ウィジェットクラスファイルを含むディレクトリの下にある 'views' サブディレクトリを返します。

public string getViewPath ( )
戻り値 文字列

このウィジェットのビューファイルを含むディレクトリ。

                public function getViewPath()
{
    $class = new ReflectionClass($this);
    return dirname($class->getFileName()) . DIRECTORY_SEPARATOR . 'views';
}

            
hasEventHandlers() publicメソッド

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

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

public boolean hasEventHandlers ( $name )
$name 文字列

イベント名

戻り値 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メソッド

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

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

メソッドが定義されているのは、以下の場合です。

  • クラスが指定された名前のメソッドを持つ場合
  • アタッチされたビヘイビアが指定された名前のメソッドを持つ場合(`$checkBehaviors` が true の場合)。
public boolean hasMethod ( $name, $checkBehaviors true )
$name 文字列

プロパティ名

$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;
}

            
hasModel() protectedメソッド
protected boolean hasModel ( )
戻り値 boolean

このウィジェットがデータモデルと関連付けられているかどうか。

                protected function hasModel()
{
    return $this->model instanceof Model && $this->attribute !== null;
}

            
hasProperty() publicメソッド

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

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

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

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

参照

public boolean hasProperty ( $name, $checkVars true, $checkBehaviors true )
$name 文字列

プロパティ名

$checkVars boolean

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

$checkBehaviors boolean

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

戻り値 boolean

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

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

            
hashPluginOptions() protectedメソッド

プラグイン`clientOptions`を格納するためのハッシュ化された変数を生成します。

同じページ上の他のウィジェットに対して渡される同様のオプションに対して変数を再利用するのに役立ちます。入力フィールドには、JavaScriptを介してクライアントオプションにアクセスできるように、次の特別なデータ属性も追加されます。

  • 'data-plugin-inputmask' には、プラグインオプションを格納するハッシュ化された変数が格納されます。
protected void hashPluginOptions ( $view )
$view yii\web\View

ビューインスタンス

                protected function hashPluginOptions($view)
{
    $encOptions = empty($this->clientOptions) ? '{}' : Json::htmlEncode($this->clientOptions);
    $this->_hashVar = self::PLUGIN_NAME . '_' . hash('crc32', $encOptions);
    $this->options['data-plugin-' . self::PLUGIN_NAME] = $this->_hashVar;
    $view->registerJs("var {$this->_hashVar} = {$encOptions};", View::POS_HEAD);
}

            
init() publicメソッド

ウィジェットを初期化します。

public void init ( )
例外 yii\base\InvalidConfigException

"mask" プロパティが設定されていない場合。

                public function init()
{
    parent::init();
    if (empty($this->mask) && empty($this->clientOptions['alias'])) {
        throw new InvalidConfigException("Either the 'mask' property or the 'clientOptions[\"alias\"]' property must be set.");
    }
}

            
initClientOptions() protectedメソッド

クライアントオプションを初期化します。

protected void initClientOptions ( )

                protected function initClientOptions()
{
    $options = $this->clientOptions;
    foreach ($options as $key => $value) {
        if (
            !empty($value)
            && !$value instanceof JsExpression
            && in_array($key, $this->_jsCallbacks, true)
        ) {
            $options[$key] = new JsExpression($value);
        }
    }
    $this->clientOptions = $options;
}

            
off() publicメソッド

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

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

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

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

参照: on()

public boolean off ( $name, $handler null )
$name 文字列

イベント名

$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 文字列

イベント名

$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]);
    }
}

            
registerClientScript() publicメソッド

必要なクライアントスクリプトとオプションを登録します。

public void registerClientScript ( )

                public function registerClientScript()
{
    $js = '';
    $view = $this->getView();
    $this->initClientOptions();
    if (!empty($this->mask)) {
        $this->clientOptions['mask'] = $this->mask;
    }
    $this->hashPluginOptions($view);
    if (!empty($this->definitions) && is_array($this->definitions)) {
        $js .= ucfirst(self::PLUGIN_NAME) . '.extendDefinitions(' . Json::htmlEncode($this->definitions) . ');';
    }
    if (!empty($this->aliases) && is_array($this->aliases)) {
        $js .= ucfirst(self::PLUGIN_NAME) . '.extendAliases(' . Json::htmlEncode($this->aliases) . ');';
    }
    $id = $this->options['id'];
    $js .= 'jQuery("#' . $id . '").' . self::PLUGIN_NAME . '(' . $this->_hashVar . ');';
    MaskedInputAsset::register($view);
    $view->registerJs($js);
}

            
render() publicメソッド

定義位置: yii\base\Widget::render()

ビューをレンダリングします。

レンダリングされるビューは、以下のいずれかの形式で指定できます。

  • パスエイリアス (例: "@app/views/site/index")
  • アプリケーション内の絶対パス (例: "//site/index"): ビュー名がダブルスラッシュで始まる場合。実際のビューファイルは、アプリケーションのビューパスで検索されます。
  • モジュール内の絶対パス (例: "/site/index"): ビュー名がシングルスラッシュで始まる場合。実際のビューファイルは、現在アクティブなモジュールのビューパスで検索されます。
  • 相対パス (例: "index"): 実際のビューファイルは$viewPathで検索されます。

ビュー名にファイル拡張子が含まれていない場合、デフォルトの拡張子.phpが使用されます。

public string render ( $view, $params = [] )
$view 文字列

ビュー名。

$params 配列

ビューで使用可能にするパラメータ(名前と値のペア)。

戻り値 文字列

レンダリング結果。

例外 yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function render($view, $params = [])
{
    return $this->getView()->render($view, $params, $this);
}

            
renderFile() publicメソッド

定義位置: yii\base\Widget::renderFile()

ビューファイルをレンダリングします。

public string renderFile ( $file, $params = [] )
$file 文字列

レンダリングするビューファイル。ファイルパスまたはパスエイリアスのいずれかです。

$params 配列

ビューで使用可能にするパラメータ(名前と値のペア)。

戻り値 文字列

レンダリング結果。

例外 yii\base\InvalidArgumentException

ビューファイルが存在しない場合。

                public function renderFile($file, $params = [])
{
    return $this->getView()->renderFile($file, $params, $this);
}

            
renderInputHtml() protectedメソッド (バージョン2.0.13から使用可能)

定義位置: yii\widgets\InputWidget::renderInputHtml()

HTML入力タグをレンダリングします。

入力ウィジェットがモデルに関連付けられている場合はyii\helpers\Html::activeInput()を、そうでない場合はyii\helpers\Html::input()を呼び出します。

参照

protected string renderInputHtml ( $type )
$type 文字列

作成する入力の種類。

戻り値 文字列

入力フィールドのHTML。

                protected function renderInputHtml($type)
{
    if ($this->hasModel()) {
        return Html::activeInput($type, $this->model, $this->attribute, $this->options);
    }
    return Html::input($type, $this->name, $this->value, $this->options);
}

            
run() publicメソッド

ウィジェットを実行します。

public string|void run ( )
戻り値 string|void

レンダリング結果は直接「echo」するか、文字列として返すことができます。

                public function run()
{
    $this->registerClientScript();
    echo $this->renderInputHtml($this->type);
}

            
setId() publicメソッド

定義位置: yii\base\Widget::setId()

ウィジェットのIDを設定します。

public void setId ( $value )
$value 文字列

ウィジェットのID。

                public function setId($value)
{
    $this->_id = $value;
}

            
setView() publicメソッド

定義位置: yii\base\Widget::setView()

このウィジェットで使用されるビューオブジェクトを設定します。

public void setView ( $view )
$view yii\base\View

ビューファイルまたはビューをレンダリングするために使用できるビューオブジェクト。

                public function setView($view)
{
    $this->_view = $view;
}

            
trigger() publicメソッド

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

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

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

public void trigger ( $name, yii\base\Event $event null )
$name 文字列

イベント名

$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);
}

            
widget() public static メソッド

定義位置: yii\base\Widget::widget()

ウィジェットインスタンスを作成して実行します。

このメソッドは、ウィジェットのレンダリング結果を返します。

public static string widget ( $config = [] )
$config 配列

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

戻り値 文字列

ウィジェットのレンダリング結果。

例外 例外

                public static function widget($config = [])
{
    ob_start();
    ob_implicit_flush(false);
    try {
        /* @var $widget Widget */
        $config['class'] = get_called_class();
        $widget = Yii::createObject($config);
        $out = '';
        if ($widget->beforeRun()) {
            $result = $widget->run();
            $out = $widget->afterRun($result);
        }
    } catch (\Exception $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    } catch (\Throwable $e) {
        // close the output buffer opened above if it has not been closed already
        if (ob_get_level() > 0) {
            ob_end_clean();
        }
        throw $e;
    }
    return ob_get_clean() . $out;
}