nora-lib/validation

dev-master 2025-01-06 13:04 UTC

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 # すべてのコマンドを一覧表示

利用可能なバリデーション種別

以下は、このライブラリで提供されている利用可能なバリデーション種別の一覧です:

  1. NotEmptyRule

    • 値が空かどうかを検証します。空の文字列やnullが許容されない場合に使用します。
  2. LengthRule

    • 値の文字列の長さを検証します。最小長さ、最大長さを指定して制限を設けられます。
  3. PasswordStrengthRule

    • パスワードの強度を検証します。長さや特殊文字、大文字小文字、数字などの要件に基づいてチェックします。
  4. ValidEmailRule

    • 入力値が有効なメールアドレス形式かどうかを検証します。
  5. ValidUrlRule

    • 入力値が有効なURL形式かどうかを検証します。
  6. ArrayRule

    • 入力が配列であるかを検証します。特に複数の値を扱う際に便利です。
  7. 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' にエラー: 値は空にできません。

解説

  1. データとルールの関連付け:
    各キー(例: username, email)に対応するルールを設定します。

    • NotEmptyRule は値が空でないことを確認します。
    • LengthRule は文字列の長さを指定します。
    • ValidEmailRule はメールアドレスの形式を検証します。
  2. バリデーションの実行:
    $validator->validate($data) を呼び出すことで、すべてのルールが実行されます。もし1つでもルールに違反する場合、例外として ValidationalError がスローされます。

  3. エラーの処理:
    スローされた例外から各エラーを取得し、フィールドごとのエラーメッセージを表示できます。