Heim  >  Artikel  >  Backend-Entwicklung  >  Wie extrahiere ich eine einfache Validatorklasse in PHP?

Wie extrahiere ich eine einfache Validatorklasse in PHP?

WBOY
WBOYOriginal
2024-07-17 13:57:12579Durchsuche

How to extract a simple validator class in PHP?

Ich habe zuvor gelernt, wie man ein Formular erstellt, validiert und die Formulardaten dann in einer Datenbank speichert. Heute habe ich gelernt, wie man eine Validator-Klasse aus dem Formularvalidierungscode extrahiert, um ihn wiederverwendbar und modular zu machen.

Einführung

Eine Validator-Klasse ist eine Möglichkeit, Funktionen zu gruppieren, die prüfen, ob Benutzereingaben korrekt sind. Es hilft sicherzustellen, dass die von einem Benutzer eingegebenen Daten bestimmte Regeln oder Kriterien erfüllen.

Reine Funktionen

Eine reine Funktion ist eine Funktion, die nicht vom Zustand oder Wert der Außenwelt abhängig ist. Mit anderen Worten, eine reine Funktion:

  • Gibt bei gleichen Eingaben immer die gleiche Ausgabe zurück.
  • Hat keine Nebenwirkungen, d. h. es verändert keinen äußeren Zustand.
  • Verlässt sich nicht auf einen externen Zustand, sondern nur auf seine Eingabeparameter.

Validator-Klasse

Die Validator-Klasse enthält reine Funktionen, die zur Validierung von Eingabedaten verwendet werden. Im heutigen Code sind die Funktionen:

  • string(): Überprüft, ob der Eingabewert eine Zeichenfolge innerhalb eines angegebenen Längenbereichs ist.
    • Verwendet trim(), um Leerzeichen zu entfernen
    • Verwendet strlen(), um die Länge der Eingabedaten zu überprüfen
  • E-Mail(): Validiert eine E-Mail-Adresse mithilfe der Funktion 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);
    }
}

Verwendung der Validator-Klasse

Um die Validator-Klasse zu verwenden, fügen wir sie in unsere PHP-Datei ein und rufen ihre Methoden mit der Class Name::Method-Syntax auf. Anschließend können wir bedingte Anweisungen verwenden, um zu prüfen, ob die Eingabedaten gültig sind. Zum Beispiel:

Wenn die E-Mail gültig ist, können wir den Benutzer zum nächsten Bildschirm weiterleiten. Andernfalls können wir eine Fehlermeldung anzeigen.

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

Da die angegebene E-Mail korrekt ist, fahren Sie mit der Ausführung des nächsten Codes fort. Wenn der Eingabetext gültig ist, können wir ihn in die Datenbank einfügen. Andernfalls können wir eine Fehlermeldung anzeigen.

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

Vorteile der Verwendung einer Validator-Klasse

Die Verwendung einer Validator-Klasse bietet mehrere Vorteile, darunter:

  • Wiederverwendbarkeit: Validatorfunktionen können in der gesamten Anwendung wiederverwendet werden.
  • Modularität: Die Validatorlogik ist vom Hauptanwendungscode getrennt.
  • Einfachere Wartung: Validatorfunktionen können aktualisiert oder geändert werden, ohne dass sich dies auf den Hauptanwendungscode auswirkt.

Abschluss

Durch Extrahieren einer einfachen Validator-Klasse können wir sicherstellen, dass unsere Benutzereingabedaten in unserer gesamten Anwendung konsistent validiert werden.
Ich hoffe, dass Sie das klar verstanden haben.

Das obige ist der detaillierte Inhalt vonWie extrahiere ich eine einfache Validatorklasse in PHP?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn