前回の記事で紹介した、LaravelのValidatorをピュアPHPで使用するライブラリ
purephp-validationに機能追加しました。
オブジェクトのインスタンス判定(instanceof)
をルール追加できるようにする
Instanceルールオブジェクトを追加しました。
Instanceルールオブジェクトの使い方
Instanceルールオブジェクト
「Macocci7\PurephpValidation\Rules\Instance」
の「Instance::of()」メソッドで引数にクラス名を指定することで、
「$value instanceof $class」のような判定をルール追加することができます。
use Macocci7\PurephpValidation\Rules\Instance;
$validator = Validator::make(
data: $data,
rules: [
'prop1' => Instance::of(Instance::class),
'prop2' => Instance::of([
// Macocci7\PurephpValidation\Rules\Instance
Instance::class,
// Macocci7\PurephpValidation\ValidatorFactory
Validator::class,
// Closure
(fn () => true)::class,
]),
'prop3' => Instance::of('Closure'),
],
);
▼実行結果
Translation keyは「validation.instance」となっています。
メッセージの定義は次のようになっています。
'instance' => 'The :attribute must be an instance of: :classes.',
一応、日本語のメッセージも追加しています。
'instance' => ':attributeは次のいずれかのインスタンスを指定してください: :classes.',
以上です。
コメント