PHPで単純なバリデータクラスを抽出するにはどうすればよいですか?

WBOY
リリース: 2024-07-17 13:57:12
オリジナル
593 人が閲覧しました

How to extract a simple validator class in PHP?

私は以前、フォームを作成して検証し、フォーム データをデータベースに保存する方法を学びました。今日は、フォーム検証コードから Validator クラスを抽出し、再利用可能でモジュール化する方法を学びました。

導入

バリデーター クラスは、ユーザー入力が正しいかどうかをチェックする関数をグループ化する方法です。これは、ユーザーが入力したデータが特定のルールまたは基準を満たしていることを確認するのに役立ちます。

純粋な関数

純粋関数とは、外部の世界からの状態や値に偶発的または依存しない関数です。言い換えれば、純粋な関数:

  • 同じ入力が与えられると、常に同じ出力を返します。
  • 副作用はありません。つまり、外部の状態は変更されません。
  • 外部状態には依存せず、入力パラメータのみに依存します。

バリデータクラス

Validator クラスには、入力データを検証するために使用される純粋な関数が含まれています。今日のコードでは、関数は次のとおりです:

  • 文字列(): 入力値が指定された長さの範囲内の文字列であるかどうかを確認します。
    • trim() を使用して空白文字を削除します
    • strlen() を使用して入力データの長さをチェックします
  • メール(): filter_var 関数を使用して電子メール アドレスを検証します。
<?php

class Validator {
    public static function string($value, $min = 1, $max = INF) {
        $value = trim($value);
        return strlen($value) >= $min && strlen($value) <= $max;
    }

    public static function email($value) {
        return filter_var($value, FILTER_VALIDATE_EMAIL);
    }
}
ログイン後にコピー

バリデータークラスの使用

バリデーター クラスを使用するには、それを PHP ファイルに組み込み、クラス名::メソッド構文を使用してそのメソッドを呼び出します。次に、条件ステートメントを使用して、入力データが有効かどうかを確認できます。例:

電子メールが有効な場合は、ユーザーを次の画面に移動できます。それ以外の場合は、エラー メッセージを表示できます。

<?php

require 'Validator.php';

$config = require 'config.php';
$db = new Database($config['database']);

$heading = 'Create Note';
if(! Validator::email('mujtabaofficial247@gmail.com')){
dd('that is not a valid email');}

ログイン後にコピー

指定された電子メールは正しいので、次のコードの実行に進みます。入力本文が有効な場合は、それをデータベースに挿入できます。それ以外の場合は、エラー メッセージを表示できます。

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $errors = [];

    if (! Validator::string($_POST['body'], 1, 1000)) {
        $errors['body'] = 'A body of no more than 1,000 characters is required.';
    }

    if (empty($errors)) {
        $db->query('INSERT INTO notes(body, user_id) VALUES(:body, :user_id)', [
            'body' => $_POST['body'],
            'user_id' => 1
        ]);
    }
}

require 'views/note-create.view.php';

ログイン後にコピー

Validator クラスを使用する利点

Validator クラスを使用すると、次のようないくつかの利点があります。

  • 再利用性: バリデーター関数はアプリケーション全体で再利用できます。
  • モジュール性: バリデーターのロジックはメインのアプリケーション コードから分離されています。
  • メンテナンスの容易化: メインのアプリケーション コードに影響を与えることなく、バリデーター関数を更新または変更できます。

結論

単純な Validator クラスを抽出することで、ユーザー入力データがアプリケーション全体で一貫して検証されることを保証できます。
これを明確に理解していただければ幸いです。

以上がPHPで単純なバリデータクラスを抽出するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:dev.to
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート