Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk mengekstrak kelas pengesah mudah dalam PHP?

Bagaimana untuk mengekstrak kelas pengesah mudah dalam PHP?

WBOY
WBOYasal
2024-07-17 13:57:12582semak imbas

How to extract a simple validator class in PHP?

Saya sebelum ini belajar cara membuat borang dan mengesahkannya, kemudian menyimpan data borang dalam pangkalan data. Hari ini, saya belajar cara mengekstrak Kelas Pengesah daripada kod pengesahan borang, menjadikannya boleh digunakan semula dan modular.

pengenalan

Kelas Pengesah ialah cara untuk mengumpulkan fungsi yang menyemak sama ada input pengguna adalah betul. Ia membantu memastikan data yang dimasukkan oleh pengguna memenuhi peraturan atau kriteria tertentu.

Fungsi Tulen

Fungsi tulen ialah fungsi yang tidak bergantung atau bergantung kepada keadaan atau nilai dari dunia luar. Dalam erti kata lain, fungsi tulen:

  • Sentiasa mengembalikan output yang sama dengan input yang sama.
  • Tiada kesan sampingan, bermakna ia tidak mengubah mana-mana keadaan luaran.
  • Tidak bergantung pada mana-mana keadaan luaran, hanya pada parameter inputnya.

Kelas Pengesah

Kelas Pengesah mengandungi fungsi tulen yang digunakan untuk mengesahkan data input. Dalam kod hari ini, fungsi ialah:

  • rentetan(): Menyemak sama ada nilai input ialah rentetan dalam julat panjang yang ditentukan.
    • Menggunakan trim() untuk mengalih keluar aksara ruang putih
    • Menggunakan strlen() untuk menyemak panjang data input
  • e-mel(): Mengesahkan alamat e-mel menggunakan fungsi 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);
    }
}

Menggunakan Kelas Pengesah

Untuk menggunakan Kelas Pengesah, kami memasukkannya ke dalam fail PHP kami dan memanggil kaedahnya menggunakan Class Name::Method Syntax . Kami kemudiannya boleh menggunakan pernyataan bersyarat untuk menyemak sama ada data input adalah sah. Contohnya:

Jika e-mel itu sah, kami boleh mengalihkan pengguna ke skrin seterusnya. Jika tidak, kami boleh memaparkan mesej ralat.

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

Memandangkan e-mel yang diberikan adalah betul, maka gerakkan untuk melaksanakan kod seterusnya. Jika badan input adalah sah, kita boleh memasukkannya ke dalam pangkalan data. Jika tidak, kami boleh memaparkan mesej ralat.

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

Faedah Menggunakan Kelas Pengesah

Menggunakan Kelas Pengesah memberikan beberapa faedah, termasuk:

  • Kebolehgunaan semula: Fungsi pengesah boleh digunakan semula sepanjang aplikasi.
  • Modulariti: Logik pengesah diasingkan daripada kod aplikasi utama.
  • Penyelenggaraan Lebih Mudah: Fungsi Pengesah boleh dikemas kini atau diubah suai tanpa menjejaskan kod aplikasi utama.

Kesimpulan

Dengan mengekstrak Kelas Pengesah yang mudah, kami boleh memastikan bahawa data input pengguna kami disahkan secara konsisten sepanjang aplikasi kami.
Saya harap anda telah memahami perkara ini dengan jelas.

Atas ialah kandungan terperinci Bagaimana untuk mengekstrak kelas pengesah mudah dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn