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.
Requires (Dev)
- phpstan/phpstan: ^2.0
- phpunit/phpunit: ^11
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.