seymenkonuk/validator

Modern PHP uygulamaları için geliştirilmiş şema tabanlı veri doğrulama kütüphanesi. Esnek kural sistemi, iç içe veri yapısı desteği ve zincirlenebilir API ile güçlü ve ölçeklenebilir validasyon çözümleri sunar.

Maintainers

Package info

github.com/seymenkonuk/validator

pkg:composer/seymenkonuk/validator

Statistics

Installs: 89

Dependents: 1

Suggesters: 0

Stars: 0

Open Issues: 0

v1.0.1 2026-06-13 10:06 UTC

This package is not auto-updated.

Last update: 2026-06-13 10:08:34 UTC


README

Modern PHP uygulamaları için geliştirilmiş şema tabanlı veri doğrulama kütüphanesi.

Açıklama

Modern PHP uygulamaları için geliştirilmiş fluent API tabanlı, şema odaklı bir veri doğrulama kütüphanesidir. Karmaşık veri yapılarını (nested object, array, primitive tipler) okunabilir ve zincirlenebilir bir API ile tanımlamanıza olanak sağlar. Yerleşik kuralların yanı sıra genişletilebilir yapı sunar ve doğrulama hatalarını çoklu dil desteği ile yönetebilir. Framework bağımsızdır ve her PHP projesine kolayca entegre edilebilir.

Özellikler

  • Fluent API
  • Şema tabanlı doğrulama
  • İç içe nesne (nested object) desteği
  • Dizi (array) doğrulama desteği
  • Varsayılan değerler
  • Güçlü tip doğrulama
  • Tarih ve zaman doğrulamaları
  • Çoklu dil (i18n) desteği
  • Özelleştirilebilir çeviri sistemi
  • Detaylı hata raporlama
  • Framework bağımsız kullanım
  • PHPUnit ile test edilmiş
  • PHPStan desteği

Kurulum

composer require seymenkonuk/validator

Yapılandırma

Yerelleştirme

$validator = new Validator(new Translator(
    new FileLoader(),
    "tr",
));

Özel Dil Ekleme

Kütüphanede şu an yalnızca iki dil bulunmaktadır. Bu diller haricinde bir dil kullanmak isterseniz kendi dilinizi ekleyebilirsiniz.

$validator = new Validator(new Translator(
    new FileLoader(__DIR__ . "/lang"),
    "tr",
));

Örnek Dil Dosyası

return [
    "required" => "Bu alan zorunludur.",
    "string" => "Bu alan metin olmalıdır.",
    "email" => "Bu alan geçerli bir e-posta olmalıdır.",
    'min' => 'Bu alan en az {value} olmalıdır!',
    // ve daha fazlası...
];

Kullanım

Şema Oluşturma

$schema = $validator->object()->schema([
    "username" => $validator->field()
        ->string()
        ->min(2)
        ->max(10)
        ->required(),
    "email" => $validator->field()
        ->email()
        ->required(),
    "is_agreed" => $validator->field()
        ->bool()
        ->true()
        ->required(),
]);

Doğrulama

$result = $schema->validate([
    "username" => "seymenkonuk",
    "email" => "konukrecepseymen@gmail.com",
    "is_agreed" => true,
]);

if ($result->passed()) {
    var_dump($result->validated());
}

else {
// if ($result->failed()) {
    var_dump($result->errors());
}

Nested Şema

$schema = $validator->object()->schema([
    "parent" => $validator->object()->schema([
        "name" => $validator->field()->string()->required(),
        "surname" => $validator->field()->string()->required(),
    ])->required(),
]);

Dizi Doğrulama

$schema = $validator->object()->schema([
    "hobbies" => $validator->array()
        ->items($validator->field()->string())
        ->minItems(0)
        ->maxItems(10)
        ->default([]),
]);

Lisans

Bu proje MIT Lisansı ile lisanslanmıştır.