Maison  >  Article  >  développement back-end  >  Comment extraire une classe de validateur simple en PHP ?

Comment extraire une classe de validateur simple en PHP ?

WBOY
WBOYoriginal
2024-07-17 13:57:12579parcourir

How to extract a simple validator class in PHP?

J'ai déjà appris à créer un formulaire et à le valider, puis à stocker les données du formulaire dans une base de données. Aujourd'hui, j'ai appris à extraire une classe Validator du code de validation du formulaire, la rendant réutilisable et modulaire.

Introduction

Une classe Validator est un moyen de regrouper des fonctions qui vérifient si la saisie de l'utilisateur est correcte. Cela permet de garantir que les données saisies par un utilisateur répondent à certaines règles ou critères.

Fonctions pures

Une fonction pure est une fonction qui n'est pas contingente ou dépendante d'un état ou d'une valeur du monde extérieur. Autrement dit, une fonction pure :

  • Renvoie toujours la même sortie avec les mêmes entrées.
  • N'a aucun effet secondaire, ce qui signifie qu'il ne modifie aucun état extérieur.
  • Ne repose sur aucun état externe, uniquement sur ses paramètres d'entrée.

Classe de validateur

La classe Validator contient des fonctions pures utilisées pour valider les données d'entrée. Dans le code d'aujourd'hui, les fonctions sont :

  • chaîne() : Vérifie si la valeur d'entrée est une chaîne dans une plage de longueur spécifiée.
    • Utilise trim() pour supprimer les caractères d'espacement
    • Utilise strlen() pour vérifier la longueur des données d'entrée
  • e-mail() : Valide une adresse e-mail à l'aide de la fonction 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);
    }
}

Utilisation de la classe Validator

Pour utiliser la classe Validator, nous l'incluons dans notre fichier PHP et appelons ses méthodes en utilisant la syntaxe Class Name::Method . Nous pouvons ensuite utiliser des instructions conditionnelles pour vérifier si les données d'entrée sont valides. Par exemple :

Si l'e-mail est valide, nous pouvons déplacer l'utilisateur vers l'écran suivant. Sinon, nous pouvons afficher un message d'erreur.

<?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');}

Comme l'e-mail donné est correct, passez à l'exécution du code suivant. Si le corps d'entrée est valide, nous pouvons l'insérer dans la base de données. Sinon, nous pouvons afficher un message d'erreur.

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';

Avantages de l'utilisation d'une classe de validation

L'utilisation d'une classe Validator offre plusieurs avantages, notamment :

  • Réutilisabilité : les fonctions du validateur peuvent être réutilisées dans toute l'application.
  • Modularité : la logique du validateur est séparée du code de l'application principale.
  • Maintenance plus facile : les fonctions du validateur peuvent être mises à jour ou modifiées sans affecter le code principal de l'application.

Conclusion

En extrayant une simple classe de validation, nous pouvons garantir que nos données d'entrée utilisateur sont validées de manière cohérente dans toute notre application.
J'espère que vous avez bien compris cela.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn