「労働者が自分の仕事をうまくやりたいなら、まず自分の道具を研ぎ澄まさなければなりません。」 - 孔子、「論語。陸霊公」
表紙 > プログラミング > PHPで単純なバリデータクラスを抽出するにはどうすればよいですか?

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

2024 年 7 月 31 日に公開
ブラウズ:663

How to extract a simple validator class in PHP?

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

導入

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

純粋な関数

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

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

バリデータクラス

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

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



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

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

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

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

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

リリースステートメント この記事は次の場所に転載されています: https://dev.to/ghulam_mujtaba_247/how-to-extract-a-simple-validator-class-in-php-3pp6?1 侵害がある場合は、[email protected] までご連絡ください。それを削除するには
最新のチュートリアル もっと>

免責事項: 提供されるすべてのリソースの一部はインターネットからのものです。お客様の著作権またはその他の権利および利益の侵害がある場合は、詳細な理由を説明し、著作権または権利および利益の証拠を提出して、電子メール [email protected] に送信してください。 できるだけ早く対応させていただきます。

Copyright© 2022 湘ICP备2022001581号-3