Kotchasan Framework Documentation

Kotchasan Framework Documentation

Validator Class - ระบบตรวจสอบความถูกต้องของข้อมูล

TH 03 Feb 2026 17:00

Validator Class - ระบบตรวจสอบความถูกต้องของข้อมูล

คลาส Validator รวบรวมฟังก์ชันสำหรับตรวจสอบข้อมูล (Validation) ที่ครอบคลุมทั้งข้อมูลพื้นฐาน, ความปลอดภัยของไฟล์อัปโหลด, และการตรวจสอบโครงสร้าง Array ที่ซับซ้อน

Namespace

Kotchasan\Validator

หมวดหมู่การใช้งาน

1. การตรวจสอบข้อมูลทั่วไป (Basic Data Validation)

เมธอดเหล่านี้คืนค่า true หากข้อมูลถูกต้อง และ false หากไม่ถูกต้อง

email()

ตรวจสอบรูปแบบอีเมล

public static function email(string $email): bool

url()

ตรวจสอบรูปแบบ URL

public static function url(string $url): bool

integer() / float()

ตรวจสอบว่าเป็นตัวเลขจำนวนเต็มหรือทศนิยม

public static function integer(mixed $value): bool
public static function float(mixed $value): bool

date()

ตรวจสอบวันที่ (Format: YYYY-MM-DD)

public static function date(string $date): bool

time()

ตรวจสอบเวลา (Format: HH:MM หรือ HH:MM:SS)

public static function time(string $time): bool

phone()

ตรวจสอบเบอร์โทรศัพท์ (อนุญาตเฉพาะตัวเลข, +, -, และช่องว่าง)

public static function phone(string $phone): bool

username()

ตรวจสอบ Username (อนุญาตตัวอักษรภาษาอังกฤษ, ตัวเลข, @, ., -, _)

public static function username(string $username): bool

password()

ตรวจสอบความยาวรหัสผ่าน

public static function password(string $password, int $minLength = 8): bool

2. ความปลอดภัยและการอัปโหลดไฟล์ (File Security)

isFileSafe()

ตรวจสอบความปลอดภัยของไฟล์ (MIME type และสแกนเนื้อหาไฟล์)

public static function isFileSafe(array $file, array $allowedMimes = [], bool $checkUpload = true): bool

validateFile()

ตรวจสอบไฟล์อัปโหลดแบบละเอียด (Size, Extension, MIME type, Content)

public static function validateFile(array $file, array $allowedTypes = [], array $allowedMimes = [], int $maxSize = 0, bool $checkUpload = true): bool

validateImage()

ตรวจสอบไฟล์รูปภาพแบบละเอียด (Dimension, Type, Content Scanning)

public static function validateImage(array $file, array $allowedTypes = ['jpg', ...], int $maxWidth = 0, int $maxHeight = 0, bool $checkUpload = true): array|bool

คืนค่า: Array ข้อมูลรูปภาพ (width, height, mime) หากถูกต้อง หรือ false หากไม่ผ่าน

scanFileContent()

สแกนเนื้อหาไฟล์เพื่อหาโค้ดอันตราย (เช่น PHP Shell, Script Tags)

private static function scanFileContent(string $filePath): bool

3. การตรวจสอบขั้นสูง (Advanced Validation)

pattern()

ตรวจสอบด้วย Regular Expression

public static function pattern(mixed $value, string $pattern): bool

isArrayValid()

ตรวจสอบโครงสร้าง Array ตาม Schema ที่กำหนด (รองรับ Nested validation)

public static function isArrayValid(array $array, array $schema): bool

ตัวอย่าง Schema:

$schema = [
    'username' => [
        'required' => true,
        'type' => 'string',
        'validate' => ['min' => 5, 'username' => true]
    ],
    'age' => [
        'type' => 'int',
        'validate' => ['between' => [18, 99]]
    ],
    'contact' => [
        'type' => 'array',
        'schema' => [
            'email' => ['validate' => ['email' => true]]
        ]
    ]
];

$valid = Validator::isArrayValid($data, $schema);

csrf()

ตรวจสอบ CSRF Token

public static function csrf(string $token, string $sessionToken): bool

ขนาดไฟล์: 858 บรรทัด