0 フォロワー

クラス yii\validators\IpValidator

継承yii\validators\IpValidator » yii\validators\Validator » yii\base\Component » yii\base\BaseObject
実装yii\base\Configurable
利用可能なバージョン2.0.7
ソースコード https://github.com/yiisoft/yii2/blob/master/framework/validators/IpValidator.php

このバリデーターは、属性の値が有効なIPv4/IPv6アドレスまたはサブネットであるかどうかをチェックします。

また、IPv6展開の正規化が有効な場合、属性の値を変更する可能性があります。

以下は、このバリデーターを使用した検証ルールの例です。

['ip_address', 'ip'], // IPv4 or IPv6 address
['ip_address', 'ip', 'ipv6' => false], // IPv4 address (IPv6 is disabled)
['ip_address', 'ip', 'subnet' => true], // requires a CIDR prefix (like 10.0.0.1/24) for the IP address
['ip_address', 'ip', 'subnet' => null], // CIDR prefix is optional
['ip_address', 'ip', 'subnet' => null, 'normalize' => true], // CIDR prefix is optional and will be added when missing
['ip_address', 'ip', 'ranges' => ['192.168.0.0/24']], // only IP addresses from the specified subnet are allowed
['ip_address', 'ip', 'ranges' => ['!192.168.0.0/24', 'any']], // any IP is allowed except IP in the specified subnet
['ip_address', 'ip', 'expandIPv6' => true], // expands IPv6 address to a full notation format

公開プロパティ

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

プロパティ タイプ 説明 定義元
$attributeNames 配列 属性名。 yii\validators\Validator
$attributes 配列|文字列 このバリデーターによって検証される属性。 yii\validators\Validator
$behaviors yii\base\Behavior[] このコンポーネントにアタッチされたビヘイビアのリスト。 yii\base\Component
$builtInValidators 配列 組み込みバリデーターのリスト (名前 => クラスまたは構成) yii\validators\Validator
$enableClientValidation ブール値 このバリデーターに対してクライアント側の検証を有効にするかどうか。 yii\validators\Validator
$except 配列|文字列 バリデーターを適用すべきでないシナリオ。 yii\validators\Validator
$expandIPv6 ブール値 IPv6アドレスを完全表記形式に展開するかどうか。 yii\validators\IpValidator
$hasSubnet 文字列 $subnet が false であるために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。ただし、CIDRプレフィックスは存在します。 yii\validators\IpValidator
$ipv4 ブール値 検証する値がIPv4アドレスであることができるかどうか。 yii\validators\IpValidator
$ipv4NotAllowed 文字列 IPv4検証が無効になっているために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。 yii\validators\IpValidator
$ipv4Pattern 文字列 IPv4アドレスを検証するための正規表現パターン yii\validators\IpValidator
$ipv6 ブール値 検証する値がIPv6アドレスであることができるかどうか。 yii\validators\IpValidator
$ipv6NotAllowed 文字列 IPv6検証が無効になっているために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。 yii\validators\IpValidator
$ipv6Pattern 文字列 IPv6アドレスを検証するための正規表現パターン yii\validators\IpValidator
$isEmpty callable|null isEmpty() のデフォルト実装を置き換える PHP callable。 yii\validators\Validator
$message 文字列 IPアドレス形式が間違っているために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。 yii\validators\IpValidator
$negation ブール値 アドレスの先頭に NEGATION_CHAR 文字を持つことができるかどうか。 yii\validators\IpValidator
$networks 配列 $ranges で使用できるネットワークエイリアス。 yii\validators\IpValidator
$noSubnet 文字列|null サブネット $subnet が 'only' に設定されているが、CIDRプレフィックスが設定されていないために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。 yii\validators\IpValidator
$normalize ブール値 CIDRプレフィックスを持たないアドレスに、最小の長さ (IPv4の場合は32、IPv6の場合は128) でCIDRプレフィックスを追加するかどうか。 yii\validators\IpValidator
$notInRange 文字列 IPアドレスが$ranges チェックによって許可されていないために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。 yii\validators\IpValidator
$on 配列|文字列 バリデーターを適用できるシナリオ。 yii\validators\Validator
$ranges 配列 許可または禁止されているIPv4またはIPv6の範囲。 yii\validators\IpValidator
$skipOnEmpty ブール値 属性値が null または空の文字列の場合に、この検証ルールをスキップする必要があるかどうか。 yii\validators\Validator
$skipOnError ブール値 検証対象の属性に、以前のルールに従って既に検証エラーがある場合に、この検証ルールをスキップする必要があるかどうか。 yii\validators\Validator
$subnet ブール値|null アドレスが、192.168.10.0/24のようなCIDRサブネット付きのIPアドレスになることができるかどうか。 yii\validators\IpValidator
$validationAttributes 配列|null 属性名のリスト。 yii\validators\Validator
$when callable|null このバリデーターを適用するかどうかを決定する戻り値を持つ PHP callable。 yii\validators\Validator
$whenClient 文字列|null このバリデーターをクライアント側で適用するかどうかを決定する戻り値を持つ JavaScript 関数名。 yii\validators\Validator
$wrongCidr 文字列 CIDRが間違っているために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。 yii\validators\IpValidator

公開メソッド

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

メソッド 説明 定義元
__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
addError() 指定された属性に関するエラーをモデルオブジェクトに追加します。 yii\validators\Validator
attachBehavior() このコンポーネントにビヘイビアをアタッチします。 yii\base\Component
attachBehaviors() コンポーネントにビヘイビアのリストをアタッチします。 yii\base\Component
behaviors() このコンポーネントがどのように振る舞うべきかを示すビヘイビアのリストを返します。 yii\base\Component
canGetProperty() プロパティが読み取り可能かどうかを示す値を返します。 yii\base\Component
canSetProperty() プロパティが設定可能かどうかを示す値を返します。 yii\base\Component
className() このクラスの完全修飾名を返します。 yii\base\BaseObject
clientValidateAttribute() クライアントサイドの検証を実行するために必要な JavaScript を返します。 yii\validators\IpValidator
createValidator() バリデーターオブジェクトを作成します。 yii\validators\Validator
detachBehavior() コンポーネントからビヘイビアをデタッチします。 yii\base\Component
detachBehaviors() コンポーネントからすべてのビヘイビアをデタッチします。 yii\base\Component
ensureBehaviors() behaviors() で宣言されたビヘイビアがこのコンポーネントにアタッチされていることを確認します。 yii\base\Component
getAttributeNames() 先頭の ! 文字を取り除いた、クリーンな属性名を返します。 yii\validators\Validator
getBehavior() 名前付きのビヘイビアオブジェクトを返します。 yii\base\Component
getBehaviors() このコンポーネントにアタッチされているすべてのビヘイビアを返します。 yii\base\Component
getClientOptions() クライアントサイドの検証オプションを返します。 yii\validators\IpValidator
getRanges() yii\validators\IpValidator
getValidationAttributes() このバリデーターが適用される属性のリストを返します。 yii\validators\Validator
hasEventHandlers() 指定されたイベントにハンドラーがアタッチされているかどうかを示す値を返します。 yii\base\Component
hasMethod() メソッドが定義されているかどうかを示す値を返します。 yii\base\Component
hasProperty() このコンポーネントにプロパティが定義されているかどうかを示す値を返します。 yii\base\Component
init() オブジェクトを初期化します。 yii\validators\IpValidator
isActive() 指定されたシナリオと属性に対してバリデーターがアクティブであるかどうかを示す値を返します。 yii\validators\Validator
isEmpty() 指定された値が空かどうかを確認します。 yii\validators\Validator
off() このコンポーネントから既存のイベントハンドラーをデタッチします。 yii\base\Component
on() イベントにイベントハンドラーをアタッチします。 yii\base\Component
setRanges() 許可または禁止される IPv4 または IPv6 の範囲を設定します。 yii\validators\IpValidator
trigger() イベントをトリガーします。 yii\base\Component
validate() 指定された値を検証します。 yii\validators\Validator
validateAttribute() 単一の属性を検証します。 yii\validators\IpValidator
validateAttributes() 指定されたオブジェクトを検証します。 yii\validators\Validator

Protected Methods

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

メソッド 説明 定義元
formatMessage() I18N を使用してメッセージをフォーマットするか、\Yii::$app が利用できない場合は単純な strtr を使用します。 yii\validators\Validator
validateIPv4() IPv4 アドレスを検証します。 yii\validators\IpValidator
validateIPv6() IPv6 アドレスを検証します。 yii\validators\IpValidator
validateValue() 値を検証します。 yii\validators\IpValidator

Constants

継承された定数を非表示

定数 説明 定義元
NEGATION_CHAR '!' 否定文字。 $ranges または $networks を否定するため、または $negationtrue に設定されている場合に検証値を否定するために使用されます。 yii\validators\IpValidator

Property Details

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

$expandIPv6 public property

IPv6 アドレスを完全表記形式に展開するかどうか。デフォルトは false です。

public boolean $expandIPv6 false
$hasSubnet public property

$subnet が false であるために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。ただし、CIDRプレフィックスは存在します。

メッセージには次のプレースホルダーを使用できます

  • {attribute}: 検証対象の属性のラベル
  • {value}: 検証対象の属性の値

$subnet も参照してください。

public string $hasSubnet null
$ipv4 public property

検証値が IPv4 アドレスであるかどうか。デフォルトは true です。

public boolean $ipv4 true
$ipv4NotAllowed public property

IPv4検証が無効になっているために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。

メッセージには次のプレースホルダーを使用できます

  • {attribute}: 検証対象の属性のラベル
  • {value}: 検証対象の属性の値

$ipv4 も参照してください。

public string $ipv4NotAllowed null
$ipv4Pattern public property

IPv4アドレスを検証するための正規表現パターン

public string $ipv4Pattern '/^(?:(?:2(?:[0-4]\d|5[0-5])|[0-1]?\d?\d)\.){3}(?:(?:2([0-4]\d|5[0-5])|[0-1]?\d?\d))$/'
$ipv6 public property

検証値が IPv6 アドレスであるかどうか。デフォルトは true です。

public boolean $ipv6 true
$ipv6NotAllowed public property

IPv6検証が無効になっているために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。

メッセージには次のプレースホルダーを使用できます

  • {attribute}: 検証対象の属性のラベル
  • {value}: 検証対象の属性の値

$ipv6 も参照してください。

public string $ipv6NotAllowed null
$ipv6Pattern public property

IPv6アドレスを検証するための正規表現パターン

public string $ipv6Pattern '/^(([\da-fA-F]{1,4}:){7}[\da-fA-F]{1,4}|([\da-fA-F]{1,4}:){1,7}:|([\da-fA-F]{1,4}:){1,6}:[\da-fA-F]{1,4}|([\da-fA-F]{1,4}:){1,5}(:[\da-fA-F]{1,4}){1,2}|([\da-fA-F]{1,4}:){1,4}(:[\da-fA-F]{1,4}){1,3}|([\da-fA-F]{1,4}:){1,3}(:[\da-fA-F]{1,4}){1,4}|([\da-fA-F]{1,4}:){1,2}(:[\da-fA-F]{1,4}){1,5}|[\da-fA-F]{1,4}:((:[\da-fA-F]{1,4}){1,6})|:((:[\da-fA-F]{1,4}){1,7}|:)|fe80:(:[\da-fA-F]{0,4}){0,4}%[\da-zA-Z]+|::(ffff(:0{1,4})?:)?((25[0-5]|(2[0-4]|1?\d)?\d)\.){3}(25[0-5]|(2[0-4]|1?\d)?\d)|([\da-fA-F]{1,4}:){1,4}:((25[0-5]|(2[0-4]|1?[\d])?\d)\.){3}(25[0-5]|(2[0-4]|1?\d)?\d))$/'
$message public property

IPアドレス形式が間違っているために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。

メッセージには次のプレースホルダーを使用できます

  • {attribute}: 検証対象の属性のラベル
  • {value}: 検証対象の属性の値
public string $message null
$negation public プロパティ

アドレスの先頭にNEGATION_CHAR文字を含めることができるかどうか。デフォルトはfalseです。

public boolean $negation false
$networks public プロパティ

$ranges で使用できるネットワークエイリアス。

  • key - エイリアス名
  • value - 文字列の配列。文字列は、IP範囲、IPアドレス、または別のエイリアスである可能性があります。文字列は、NEGATION_CHARで否定できます(negationオプションとは無関係)。

次のエイリアスがデフォルトで定義されています。

  • *: any
  • any: 0.0.0.0/0, ::/0
  • private: 10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, fd00::/8
  • multicast: 224.0.0.0/4, ff00::/8
  • linklocal: 169.254.0.0/16, fe80::/10
  • localhost: 127.0.0.0/8', ::1
  • documentation: 192.0.2.0/24, 198.51.100.0/24, 203.0.113.0/24, 2001:db8::/32
  • system: multicast, linklocal, localhost, documentation
public array $networks = [
    
'*' => [
        
'any',
    ],
    
'any' => [
        
'0.0.0.0/0',
        
'::/0',
    ],
    
'private' => [
        
'10.0.0.0/8',
        
'172.16.0.0/12',
        
'192.168.0.0/16',
        
'fd00::/8',
    ],
    
'multicast' => [
        
'224.0.0.0/4',
        
'ff00::/8',
    ],
    
'linklocal' => [
        
'169.254.0.0/16',
        
'fe80::/10',
    ],
    
'localhost' => [
        
'127.0.0.0/8',
        
'::1',
    ],
    
'documentation' => [
        
'192.0.2.0/24',
        
'198.51.100.0/24',
        
'203.0.113.0/24',
        
'2001:db8::/32',
    ],
    
'system' => [
        
'multicast',
        
'linklocal',
        
'localhost',
        
'documentation',
    ],
]
$noSubnet public プロパティ

サブネット $subnet が 'only' に設定されているが、CIDRプレフィックスが設定されていないために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。

メッセージには次のプレースホルダーを使用できます

  • {attribute}: 検証対象の属性のラベル
  • {value}: 検証対象の属性の値

$subnet も参照してください。

public string|null $noSubnet null
$normalize public プロパティ

CIDRプレフィックスを持たないアドレスに、最小の長さ(IPv4の場合は32、IPv6の場合は128)を持つCIDRプレフィックスを追加するかどうか。subnetfalseでない場合にのみ機能します。例:

  • 10.0.1.510.0.1.5/32に正規化されます。
  • 2008:db0::12008:db0::1/128に正規化されます。デフォルトはfalseです。

$subnet も参照してください。

public boolean $normalize false
$notInRange public プロパティ

IPアドレスが$ranges チェックによって許可されていないために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。

メッセージには次のプレースホルダーを使用できます

  • {attribute}: 検証対象の属性のラベル
  • {value}: 検証対象の属性の値

$rangesも参照してください。

public string $notInRange null
$ranges public プロパティ

許可または禁止されているIPv4またはIPv6の範囲。このプロパティの型は、ゲッターとセッターで異なることに注意してください。詳細については、getRanges()setRanges()を参照してください。

public array $ranges null
$subnet public プロパティ

アドレスが、192.168.10.0/24のようなCIDRサブネット付きのIPにできるかどうか。次の値が可能です。

  • false - アドレスにサブネットを含めてはなりません(デフォルト)。
  • true - サブネットの指定が必須です。
  • null - サブネットの指定はオプションです。
public boolean|null $subnet false
$wrongCidr public プロパティ

CIDRが間違っているために検証に失敗した場合に使用される、ユーザー定義のエラーメッセージ。

メッセージには次のプレースホルダーを使用できます

  • {attribute}: 検証対象の属性のラベル
  • {value}: 検証対象の属性の値

$subnet も参照してください。

public string $wrongCidr null

メソッドの詳細

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

__call() public メソッド

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

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

このメソッドは、添付された動作に名前付きメソッドがあるかどうかを確認し、存在する場合は実行します。

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

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

メソッド名

$params 配列

メソッドのパラメータ

return mixed

メソッドの戻り値

throws 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()

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

このメソッドは次の順序で確認し、それに応じて動作します。

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

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

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

public mixed __get ( $name )
$name 文字列

プロパティ名

return mixed

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

throws yii\base\UnknownPropertyException

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

throws 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 を返します

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

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

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

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

return ブール値

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

                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" という名前のビヘイビアをアタッチします
  • ビヘイビアのプロパティ:ビヘイビアのプロパティ値を設定します

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

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

public void __set ( $name, $value )
$name 文字列

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

$value mixed

プロパティ値

throws yii\base\UnknownPropertyException

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

throws 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 に設定します

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

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

public void __unset ( $name )
$name 文字列

プロパティ名

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

            
addError() public メソッド

定義場所: yii\validators\Validator::addError()

指定された属性に関するエラーをモデルオブジェクトに追加します。

これは、メッセージの選択と国際化を実行するヘルパーメソッドです。

public void addError ( $model, $attribute, $message, $params = [] )
$model yii\base\Model

検証対象のデータモデル

$attribute 文字列

検証対象の属性

$message 文字列

エラーメッセージ

$params 配列

エラーメッセージ内のプレースホルダーの値

                public function addError($model, $attribute, $message, $params = [])
{
    $params['attribute'] = $model->getAttributeLabel($attribute);
    if (!isset($params['value'])) {
        $value = $model->$attribute;
        if (is_array($value)) {
            $params['value'] = 'array()';
        } elseif (is_object($value) && !method_exists($value, '__toString')) {
            $params['value'] = '(object)';
        } else {
            $params['value'] = $value;
        }
    }
    $model->addError($attribute, $this->formatMessage($message, $params));
}

            
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() に渡してビヘイビアオブジェクトを作成するオブジェクト構成配列。
return 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);
    }
}

            
behaviors() public メソッド

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

このコンポーネントがどのように振る舞うべきかを示すビヘイビアのリストを返します。

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

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

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

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

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

public array behaviors ( )
return 配列

ビヘイビアの構成。

                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 ブール値

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

$checkBehaviors ブール値

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

return ブール値

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

                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 ブール値

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

$checkBehaviors ブール値

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

return ブール値

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

                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 ( )
return 文字列

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

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

            
clientValidateAttribute() public メソッド

クライアントサイドの検証を実行するために必要な JavaScript を返します。

getClientOptions() を呼び出して、クライアント側の検証用のオプション配列を生成します。

バリデーターがクライアント側の検証をサポートできる場合は、このメソッドをオーバーライドして JavaScript 検証コードを返すことができます。

以下の JavaScript 変数が事前に定義されており、検証コードで使用できます。

  • attribute: 検証される属性を記述するオブジェクト。
  • value: 検証される値。
  • messages: 属性の検証エラーメッセージを保持するために使用される配列。
  • deferred: 非同期検証用の遅延オブジェクトを保持するために使用される配列
  • $form: フォーム要素を含む jQuery オブジェクト

attribute オブジェクトには、次のプロパティが含まれています。

  • id: フォーム内の属性を識別する一意の ID (例: "loginform-username")
  • name: 属性名または式 (例: 表形式の入力の場合は "[0]content")
  • container: 入力フィールドのコンテナの jQuery セレクター
  • input: フォームのコンテキストにおける入力フィールドの jQuery セレクター
  • error: コンテナのコンテキストにおけるエラータグの jQuery セレクター
  • status: 入力フィールドのステータス、0: 空、以前に入力されていない、1: 検証済み、2: 検証保留中、3: 検証中
public string|null clientValidateAttribute ( $model, $attribute, $view )
$model yii\base\Model

検証対象のデータモデル

$attribute 文字列

検証される属性の名前。

$view yii\web\View

このバリデーターが適用されたモデルフォームを含むビューまたはビューファイルをレンダリングするために使用されるビューオブジェクト。

return 文字列|null

クライアント側の検証スクリプト。バリデーターがクライアント側の検証をサポートしていない場合は Null。

                public function clientValidateAttribute($model, $attribute, $view)
{
    ValidationAsset::register($view);
    $options = $this->getClientOptions($model, $attribute);
    return 'yii.validation.ip(value, messages, ' . Json::htmlEncode($options) . ');';
}

            
createValidator() public static メソッド

定義元: yii\validators\Validator::createValidator()

バリデーターオブジェクトを作成します。

public static yii\validators\Validator createValidator ( $type, $model, $attributes, $params = [] )
$type string|Closure

バリデーターのタイプ。これは以下のいずれかになります。

  • $builtInValidators にリストされている組み込みバリデーター名。
  • モデルクラスのメソッド名。
  • 無名関数。
  • バリデータークラス名。
$model yii\base\Model

検証されるデータモデル。

$attributes 配列|文字列

検証される属性のリスト。これは、属性名の配列またはコンマ区切りの属性名の文字列のいずれかになります。

$params 配列

バリデーターのプロパティに適用する初期値。

return yii\validators\Validator

バリデーター

                public static function createValidator($type, $model, $attributes, $params = [])
{
    $params['attributes'] = $attributes;
    if ($type instanceof \Closure) {
        $params['class'] = __NAMESPACE__ . '\InlineValidator';
        $params['method'] = $type;
    } elseif (!isset(static::$builtInValidators[$type]) && $model->hasMethod($type)) {
        // method-based validator
        $params['class'] = __NAMESPACE__ . '\InlineValidator';
        $params['method'] = [$model, $type];
    } else {
        unset($params['current']);
        if (isset(static::$builtInValidators[$type])) {
            $type = static::$builtInValidators[$type];
        }
        if (is_array($type)) {
            $params = array_merge($type, $params);
        } else {
            $params['class'] = $type;
        }
    }
    return Yii::createObject($params);
}

            
detachBehavior() public メソッド

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

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

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

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

ビヘイビアの名前。

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

            
formatMessage() protected メソッド (バージョン 2.0.12 以降で使用可能)

定義元: yii\validators\Validator::formatMessage()

I18N を使用してメッセージをフォーマットするか、\Yii::$app が利用できない場合は単純な strtr を使用します。

protected string formatMessage ( $message, $params )
$message 文字列
$params 配列

                protected function formatMessage($message, $params)
{
    if (Yii::$app !== null) {
        return \Yii::$app->getI18n()->format($message, $params, Yii::$app->language);
    }
    $placeholders = [];
    foreach ((array) $params as $name => $value) {
        $placeholders['{' . $name . '}'] = $value;
    }
    return ($placeholders === []) ? $message : strtr($message, $placeholders);
}

            
getAttributeNames() public メソッド (バージョン 2.0.12 以降で使用可能)

定義元: yii\validators\Validator::getAttributeNames()

先頭の ! 文字を取り除いた、クリーンな属性名を返します。

public array getAttributeNames ( )
return 配列

属性名。

                public function getAttributeNames()
{
    return array_map(function ($attribute) {
        return ltrim($attribute, '!');
    }, $this->attributes);
}

            
getBehavior() public メソッド

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

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

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

ビヘイビア名

return 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 ( )
return yii\base\Behavior[]

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

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

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

クライアントサイドの検証オプションを返します。

このメソッドは通常、clientValidateAttribute() から呼び出されます。クライアントサイドのバリデーションに渡されるオプションを変更するために、このメソッドをオーバーライドすることができます。

public array getClientOptions ( $model, $attribute )
$model yii\base\Model

バリデーションされるモデル

$attribute 文字列

バリデーションされる属性名

return 配列

クライアントサイドのバリデーションオプション

                public function getClientOptions($model, $attribute)
{
    $messages = [
        'ipv6NotAllowed' => $this->ipv6NotAllowed,
        'ipv4NotAllowed' => $this->ipv4NotAllowed,
        'message' => $this->message,
        'noSubnet' => $this->noSubnet,
        'hasSubnet' => $this->hasSubnet,
    ];
    foreach ($messages as &$message) {
        $message = $this->formatMessage($message, [
            'attribute' => $model->getAttributeLabel($attribute),
        ]);
    }
    $options = [
        'ipv4Pattern' => new JsExpression(Html::escapeJsRegularExpression($this->ipv4Pattern)),
        'ipv6Pattern' => new JsExpression(Html::escapeJsRegularExpression($this->ipv6Pattern)),
        'messages' => $messages,
        'ipv4' => (bool) $this->ipv4,
        'ipv6' => (bool) $this->ipv6,
        'ipParsePattern' => new JsExpression(Html::escapeJsRegularExpression($this->getIpParsePattern())),
        'negation' => $this->negation,
        'subnet' => $this->subnet,
    ];
    if ($this->skipOnEmpty) {
        $options['skipOnEmpty'] = 1;
    }
    return $options;
}

            
getRanges() public メソッド

public array getRanges ( )
return 配列

許可または禁止されているIPv4またはIPv6の範囲。

                public function getRanges()
{
    return $this->_ranges;
}

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

定義元: yii\validators\Validator::getValidationAttributes()

このバリデーターが適用される属性のリストを返します。

public array|null getValidationAttributes ( $attributes null )
$attributes array|string|null

バリデーションされる属性のリスト。

  • これが null の場合、結果は getAttributeNames() と等しくなります。
  • これが文字列または配列の場合、getAttributeNames() と指定された属性の積集合が返されます。
return 配列|null

属性名のリスト。

                public function getValidationAttributes($attributes = null)
{
    if ($attributes === null) {
        return $this->getAttributeNames();
    }
    if (is_scalar($attributes)) {
        $attributes = [$attributes];
    }
    $newAttributes = [];
    $attributeNames = $this->getAttributeNames();
    foreach ($attributes as $attribute) {
        // do not strict compare, otherwise int attributes would fail due to to string conversion in getAttributeNames() using ltrim().
        if (in_array($attribute, $attributeNames, false)) {
            $newAttributes[] = $attribute;
        }
    }
    return $newAttributes;
}

            
hasEventHandlers() public メソッド

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

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

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

イベント名

return ブール値

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

                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 ブール値

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

return ブール値

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

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

            
hasProperty() public メソッド

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

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

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

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

参照

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

プロパティ名

$checkVars ブール値

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

$checkBehaviors ブール値

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

return ブール値

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

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

            
init() public メソッド

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

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

public void init ( )

                public function init()
{
    parent::init();
    if (!$this->ipv4 && !$this->ipv6) {
        throw new InvalidConfigException('Both IPv4 and IPv6 checks can not be disabled at the same time');
    }
    if ($this->message === null) {
        $this->message = Yii::t('yii', '{attribute} must be a valid IP address.');
    }
    if ($this->ipv6NotAllowed === null) {
        $this->ipv6NotAllowed = Yii::t('yii', '{attribute} must not be an IPv6 address.');
    }
    if ($this->ipv4NotAllowed === null) {
        $this->ipv4NotAllowed = Yii::t('yii', '{attribute} must not be an IPv4 address.');
    }
    if ($this->wrongCidr === null) {
        $this->wrongCidr = Yii::t('yii', '{attribute} contains wrong subnet mask.');
    }
    if ($this->noSubnet === null) {
        $this->noSubnet = Yii::t('yii', '{attribute} must be an IP address with specified subnet.');
    }
    if ($this->hasSubnet === null) {
        $this->hasSubnet = Yii::t('yii', '{attribute} must not be a subnet.');
    }
    if ($this->notInRange === null) {
        $this->notInRange = Yii::t('yii', '{attribute} is not in the allowed range.');
    }
}

            
isActive() public メソッド

定義元: yii\validators\Validator::isActive()

指定されたシナリオと属性に対してバリデーターがアクティブであるかどうかを示す値を返します。

バリデータがアクティブになるのは、次のいずれかの場合です。

  • バリデータの on プロパティが空の場合、または
  • バリデータの on プロパティが指定されたシナリオを含む場合
public boolean isActive ( $scenario )
$scenario 文字列

シナリオ名

return ブール値

バリデータが指定されたシナリオに適用されるかどうか。

                public function isActive($scenario)
{
    return !in_array($scenario, $this->except, true) && (empty($this->on) || in_array($scenario, $this->on, true));
}

            
isEmpty() public メソッド

定義元: yii\validators\Validator::isEmpty()

指定された値が空かどうかを確認します。

値が null、空の配列、または空の文字列の場合、空とみなされます。このメソッドは PHP の empty() とは異なります。値が 0 の場合は false を返します。

public boolean isEmpty ( $value )
$value mixed

チェックする値

return ブール値

値が空かどうか

                public function isEmpty($value)
{
    if ($this->isEmpty !== null) {
        return call_user_func($this->isEmpty, $value);
    }
    return $value === null || $value === [] || $value === '';
}

            
off() public メソッド

定義元: yii\base\Component::off()

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

このメソッドは、on() の反対です。

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

参照 on().

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

イベント名

$handler callable|null

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

return ブール値

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

                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 ブール値

新しいイベントハンドラーを既存のハンドラーリストの末尾に追加するかどうか。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]);
    }
}

            
setRanges() public メソッド

許可または禁止される IPv4 または IPv6 の範囲を設定します。

以下の準備タスクが実行されます。

  • $networks で説明されているエイリアスを、その値で再帰的に置き換えます。
  • 重複を削除します。
public void setRanges ( $ranges )
$ranges array|string|null

許可または禁止されているIPv4またはIPv6の範囲。

配列が空の場合、またはオプションが設定されていない場合、すべてのIPアドレスが許可されます。

それ以外の場合は、最初のマッチが見つかるまでルールが順番にチェックされます。いずれのルールにも一致しない場合、IPアドレスは禁止されます。

[
     'ranges' => [
         '192.168.10.128'
         '!192.168.10.0/24',
         'any' // allows any other IP addresses
     ]
]

この例では、192.168.10.0/24 サブネットを除くすべてのIPv4およびIPv6アドレスへのアクセスが許可されています。IPv4アドレス 192.168.10.128 も、制限の前にリストされているため許可されています。

                public function setRanges($ranges)
{
    $this->_ranges = $this->prepareRanges((array) $ranges);
}

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

            
validate() public メソッド

定義元: yii\validators\Validator::validate()

指定された値を検証します。

このメソッドを使用して、データモデルのコンテキスト外で値を検証できます。

public boolean validate ( $value, &$error null )
$value mixed

検証するデータ値。

$error 文字列|null

検証が失敗した場合に返されるエラーメッセージ。

return ブール値

データが有効かどうか。

                public function validate($value, &$error = null)
{
    $result = $this->validateValue($value);
    if (empty($result)) {
        return true;
    }
    list($message, $params) = $result;
    $params['attribute'] = Yii::t('yii', 'the input value');
    if (is_array($value)) {
        $params['value'] = 'array()';
    } elseif (is_object($value)) {
        $params['value'] = 'object';
    } else {
        $params['value'] = $value;
    }
    $error = $this->formatMessage($message, $params);
    return false;
}

            
validateAttribute() public メソッド

単一の属性を検証します。

子クラスは、実際の検証ロジックを提供するためにこのメソッドを実装する必要があります。

public void validateAttribute ( $model, $attribute )
$model yii\base\Model

検証するデータモデル

$attribute 文字列

検証される属性の名前。

                public function validateAttribute($model, $attribute)
{
    $value = $model->$attribute;
    $result = $this->validateSubnet($value);
    if (is_array($result)) {
        $result[1] = array_merge(['ip' => is_array($value) ? 'array()' : $value], $result[1]);
        $this->addError($model, $attribute, $result[0], $result[1]);
    } else {
        $model->$attribute = $result;
    }
}

            
validateAttributes() public メソッド

定義元: yii\validators\Validator::validateAttributes()

指定されたオブジェクトを検証します。

public void validateAttributes ( $model, $attributes null )
$model yii\base\Model

検証対象のデータモデル

$attributes array|string|null

検証する属性のリスト。属性がバリデーターに関連付けられていない場合は無視されることに注意してください。このパラメーターが null の場合、$attributes にリストされているすべての属性が検証されます。

                public function validateAttributes($model, $attributes = null)
{
    $attributes = $this->getValidationAttributes($attributes);
    foreach ($attributes as $attribute) {
        $skip = $this->skipOnError && $model->hasErrors($attribute)
            || $this->skipOnEmpty && $this->isEmpty($model->$attribute);
        if (!$skip) {
            if ($this->when === null || call_user_func($this->when, $model, $attribute)) {
                $this->validateAttribute($model, $attribute);
            }
        }
    }
}

            
validateIPv4() protected メソッド

IPv4 アドレスを検証します。

protected boolean validateIPv4 ( $value )
$value 文字列

                protected function validateIPv4($value)
{
    return preg_match($this->ipv4Pattern, $value) !== 0;
}

            
validateIPv6() protected メソッド

IPv6 アドレスを検証します。

protected boolean validateIPv6 ( $value )
$value 文字列

                protected function validateIPv6($value)
{
    return preg_match($this->ipv6Pattern, $value) !== 0;
}

            
validateValue() protected メソッド

値を検証します。

バリデータークラスは、データモデルのコンテキスト外でのデータ検証をサポートするためにこのメソッドを実装できます。

protected array|null validateValue ( $value )
$value mixed

検証するデータ値。

return 配列|null

エラーメッセージと、エラーメッセージに挿入されるパラメーターの配列。`php if (!$valid) {

return [$this->message, [
    'param1' => $this->param1,
    'formattedLimit' => Yii::$app->formatter->asShortSize($this->getSizeLimit()),
    'mimeTypes' => implode(', ', $this->mimeTypes),
    'param4' => 'etc...',
]];

}

return null; ` この例では、message テンプレートに {param1}{formattedLimit}{mimeTypes}{param4} を含めることができます。

データが有効な場合は、Nullを返す必要があります。

throws yii\base\NotSupportedException

バリデーターがモデルなしでのデータ検証をサポートしていない場合

                protected function validateValue($value)
{
    $result = $this->validateSubnet($value);
    if (is_array($result)) {
        $result[1] = array_merge(['ip' => is_array($value) ? 'array()' : $value], $result[1]);
        return $result;
    }
    return null;
}