Validation クラス

Validation クラスは、ユーザ入力をバリデーションする際の手助けをします。 フォームの生成とバリデーションを同時にしたい場合は、代わりに Fieldset クラスを使用してください。

Class Methods

forge($fieldset = 'default')

forge メソッドは、Validation クラスの新しいインスタンスを生成します。 また、与えられた Fieldset とリンクされます。

静的 はい
パラメータ
パラメータ デフォルト 説明
$fieldset string | Fieldset
'default'
リンクする Fieldset の名前もしくはインスタンス
返り値 Validation オブジェクト
例外 \DomainException Fieldset の名前もしくはインスタンスが、既にバリデーションインスタンスに関連づけられているとき。
// 新しい Validation インスタンスを生成
$val = Validation::forge();

// fieldset 名を使って、新しい Validation インスタンスと Fieldset を関連づける
$val = Validation::forge('my_fieldset');

// fieldset インスタンスを渡して、新しい Validation インスタンスと Fieldset を関連づける
$fieldset = Fieldset::instance('my_fieldset');
$val = Validation::forge($fieldset);

instance($name = null)

instance メソッドは、$name 識別子が付与された Fieldset インスタンス、 もしくはデフォルトの Fieldset (必要とされている場合)、 このどちらかと関連付けられた Validation インスタンスを返します。

静的 はい
パラメータ
パラメータ デフォルト 説明
$name string
null
返してほしい Validation インスタンスに属する Fieldset の名前
返り値 Validation オブジェクト
または指定した Fieldset インスタンスが存在しなかった場合 false
// デフォルト Fieldset の Validation インスタンスを取得
$val = Validation::instance();

// 特定の Fieldset の Validation インスタンスを取得
$val = Validation::instance('my_fieldset');

active()

active メソッドは現在アクティブな Validation インスタンスを返します。

静的 はい
パラメータ None
返り値 Validation - 現在アクティブな Validation インスタンス
// 現在アクティブな Validation インスタンスを取得
$val = Validation::active();

active_field()

active_field メソッドは 現在バリデーションされているフィールドを返します。

静的 はい
パラメータ None
返り値 Fieldset_Field - 現在バリデーションされているフィールド
// 現在バリデーションされているフィールドを取得
$field = Validation::active_field();

fieldset()

fieldset メソッドは関連づけられた Fieldset を返します。

静的 いいえ
パラメータ None
返り値 Fieldset - 関連づけられた Fieldset
// 関連づけられた Fieldset を取得する
$val = Validation::forge('my_fieldset');
$fieldset = $val->fieldset();

add_field($name, $label, $rules)

add_field メソッドは add() メソッドのよりシンプルなエイリアスです。フィールドの名前、ラベル、ルールをワンステップで指定できます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$name string
None
バリデーションのルールを割り当てるフィールドの名前
$label string
None
フィールドのラベル
$rules mixed
None
角括弧でくくられたカンマ区切りのルールパラメータが付いた (オプション) 、バリデーションルールのセット。 縦棒かパイプ記号 (|) で区切られた文字列として渡してもよいし、配列として渡してもよい。
返り値 Fieldset_Field
// 異なるタイプのフィールドに対するルールの設定
$val->add_field('username', 'Username', 'required|trim|valid_string[alpha,lowercase,numeric]');
$val->add_field('email', 'Email', 'required|trim|valid_email');
$val->add_field('age', 'Age', 'valid_string[numeric]');

// 配列としてルールを渡す
$val->add_field('username', 'Username', array('required', 'trim', 'valid_string[alpha,lowercase,numeric]'));

set_message($rule, $message)

set_message メソッドは、このバリデーションインスタンスに設定された language ファイルのメッセージ文を上書きします。使いたいルールにメッセージ文が設定されていない場合にも便利です。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$rule string
None
このメッセージを割り当てたいルールの名前
$message string | null
None
文字列を渡せばこのルールへのメッセージ文となる。null を渡すと language ファイルのメッセージ文に戻る
返り値 Validation instance
// required ルールのメッセージを上書き
$val->set_message('required', 'You have to fill in your :label so you can proceed');
// .. 用が済んだら、デフォルトのメッセージ文に戻す
$val->set_message('required', null);
// 作ったカスタムルールに対するメッセージ文
$val->set_message('custom_rule', 'The :label you entered is previously registered. Please choose another one');

get_message($rule)

get_message メソッドは、このバリデーションインスタンスのための特定のエラーメッセージ文を取得します。set_message メソッドを介して設定されたメッセージ文のみが返されます。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$rule string
None
取得したいメッセージ文のルールの名前
返り値 string
// required ルールのメッセージ文を上書き
$val->set_message('custom_rule', 'The :label you entered is previously registered. Please choose another one');
// .. その後か、他のどこかでこのメッセージ文を取得
$val->get_message('required', null);

add_callable($class)

add_callable メソッドは、独自、もしくは拡張されたバリデーションルールのセットを追加します。クラス名となる文字列を書けばよく、全てのコールバックを書く必要はありません。新しいクラスが追加されるため、このオブジェクトから機能を上書きすることも可能です。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$class string|Object
None
文字列で表記したクラス名、もしくはオブジェクトの名前
返り値 Validation インスタンス

$val->add_callable('myvalidation');

このメソッドの使い方と、必要とされるクラスの完全な例については Validation クラスを拡張する を参照してください。

remove_callable($class)

remove_callable メソッドは callable 配列から指定した callable を削除します。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$class string|Object
None
文字列で表記したクラス名、もしくはオブジェクトの名前
返り値 Validation インスタンス
$val->remove_callable('myvalidation');

callables()

callables メソッドは、完全なコールバックを必要としないがメソッド名を必要とするオブジェクトを取得します。

静的 いいえ
パラメータ None
返り値 array

error($field = null, $default = false)

error メソッドはバリデーション中に発生する特定のエラーまたは全てのエラーを返します。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$field string
null
返したい Validation_Error インスタンスのフィールド名。フィールド名を指定しない場合、全てのエラーオブジェクトを返す。
$default mixed
false
指定したフィールドがエラー無しの場合、この値を返す。
返り値 Validation_Error インスタンス
またはフィールド名を指定しない場合は array
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');

if ( ! $val->run(array()))
{
	foreach ($val->error() as $field => $error)
	{
		echo $error->get_message();
		// The field Title is required and must contain a value.
	}
}

error_message($field = null, $default = false)

error_message メソッドはバリデーション中に発生する特定のエラーメッセージまたは全てのエラーメッセージを返します。

静的 いいえ
パラメータ
パラメータ デフォルト 説明
$field string
null
返したいエラーメッセージのフィールド名。フィールド名を指定しない場合、全てのエラーメッセージを返す。
$default string
false
指定したフィールドが存在しない場合、この値を返す。
返り値 string
またはフィールド名を指定しない場合 array
$val = Validation::forge('article');
$val->add_field('title', 'Title', 'required');

if ( ! $val->run(array()))
{
	foreach ($val->error_message() as $field => $message)
	{
		echo $message;
		// フィールドのタイトルが必要であり、値を含まなければいけません。
	}
}

More coming soon...