nora-lib / validation
Requires
- php: ^8.3.0
Requires (Dev)
- bamarni/composer-bin-plugin: ^1.8
- phpunit/phpunit: ^9.5
This package is auto-updated.
Last update: 2025-05-06 13:52:04 UTC
README
Nora Validation Libraryは、PHPで使える軽量かつ拡張性の高い入力バリデーションライブラリです。幅広いバリデーションルールを提供し、個別の要件に応じてカスタムルールを簡単に追加できます。組み込みルールには、必須フィールドチェック、文字列長の制限、メールアドレスやURLのフォーマット検証、パスワードの強度チェックなどがあります。テストも充実しており、高い信頼性を保証します。
インストール方法
```bash
composer install
```
使用可能なコマンド
```bash
composer test # 単体テストを実行
```
```bash
composer tests # テストと品質チェック
```
```bash
composer cs-fix # コーディングスタイルを修正
```
```bash
composer sa # 静的解析ツールを実行
```
```bash
composer run-script --list # すべてのコマンドを一覧表示
利用可能なバリデーション種別
以下は、このライブラリで提供されている利用可能なバリデーション種別の一覧です:
NotEmptyRule
- 値が空かどうかを検証します。空の文字列やnullが許容されない場合に使用します。
LengthRule
- 値の文字列の長さを検証します。最小長さ、最大長さを指定して制限を設けられます。
PasswordStrengthRule
- パスワードの強度を検証します。長さや特殊文字、大文字小文字、数字などの要件に基づいてチェックします。
ValidEmailRule
- 入力値が有効なメールアドレス形式かどうかを検証します。
ValidUrlRule
- 入力値が有効なURL形式かどうかを検証します。
ArrayRule
- 入力が配列であるかを検証します。特に複数の値を扱う際に便利です。
FilterRule
- 値を特定のフィルターに通すことで、通常の条件を検証します。(例:
FILTER_VALIDATE_INT
など)
- 値を特定のフィルターに通すことで、通常の条件を検証します。(例:
設定例
以下は、特定のバリデーション種別を組み合わせる例です。
- NotEmptyRule & LengthRule: 値が空でないことを確認し、かつ文字列の長さが5〜20文字以内に収まるようにする。
- ValidEmailRule: フォームの入力が正しいメール形式であるか確認する。
簡単な利用サンプル
以下に、このプロジェクトで提供されているバリデーションルールを使用する簡単なサンプルコードを示します。これにより、基本的な利用方法をイメージできます。
<?php
use Validation\Validator;
use Validation\Rule\NotEmptyRule;
use Validation\Rule\LengthRule;
use Validation\Rule\ValidEmailRule;
require_once 'vendor/autoload.php';
// バリデータの作成
$validator = new Validator();
// 検証するデータ
$data = [
'username' => 'testuser',
'email' => 'test@example.com',
'password' => 'P@ssw0rd123',
];
// ルールの設定
$validator->addRule('username', new NotEmptyRule()); // 空でないことを確認
$validator->addRule('username', new LengthRule(5, 15)); // 長さが5〜15文字以内であることを確認
$validator->addRule('email', new ValidEmailRule()); // 有効なメールアドレス形式であることを確認
$validator->addRule('password', new LengthRule(8, 20)); // パスワードが8〜20文字以内であることを確認
// バリデーションの実行
try {
$validator->validate($data);
echo "すべての検証に成功しました!";
} catch (\Validation\Exception\ValidationalError $e) {
// 検証エラーの取得
foreach ($e->getErrors() as $field => $error) {
echo "フィールド '{$field}' にエラー: {$error->getMessage()}\n";
}
}
サンプルの実行結果
入力値が正しい場合:
すべての検証に成功しました!
入力値が正しくない場合:
例えば、username
が空の場合:
フィールド 'username' にエラー: 値は空にできません。
解説
データとルールの関連付け:
各キー(例:username
,email
)に対応するルールを設定します。NotEmptyRule
は値が空でないことを確認します。LengthRule
は文字列の長さを指定します。ValidEmailRule
はメールアドレスの形式を検証します。
バリデーションの実行:
$validator->validate($data)
を呼び出すことで、すべてのルールが実行されます。もし1つでもルールに違反する場合、例外としてValidationalError
がスローされます。エラーの処理:
スローされた例外から各エラーを取得し、フィールドごとのエラーメッセージを表示できます。