{"id":41011437,"url":"https://github.com/ahmetbarut/validation","last_synced_at":"2026-01-22T09:05:24.806Z","repository":{"id":46863702,"uuid":"407571347","full_name":"ahmetbarut/validation","owner":"ahmetbarut","description":"PHP simple validation package","archived":false,"fork":false,"pushed_at":"2021-09-22T08:58:17.000Z","size":138,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-12-06T16:50:14.249Z","etag":null,"topics":["php","php-validation","simple-validation"],"latest_commit_sha":null,"homepage":"","language":"PHP","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ahmetbarut.png","metadata":{"files":{"readme":"Readme.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2021-09-17T14:29:03.000Z","updated_at":"2021-09-22T08:58:20.000Z","dependencies_parsed_at":"2022-08-27T03:23:15.544Z","dependency_job_id":null,"html_url":"https://github.com/ahmetbarut/validation","commit_stats":null,"previous_names":[],"tags_count":4,"template":false,"template_full_name":null,"purl":"pkg:github/ahmetbarut/validation","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetbarut%2Fvalidation","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetbarut%2Fvalidation/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetbarut%2Fvalidation/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetbarut%2Fvalidation/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ahmetbarut","download_url":"https://codeload.github.com/ahmetbarut/validation/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ahmetbarut%2Fvalidation/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":28659939,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-01-22T01:17:37.254Z","status":"online","status_checked_at":"2026-01-22T02:00:07.137Z","response_time":144,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["php","php-validation","simple-validation"],"created_at":"2026-01-22T09:05:24.632Z","updated_at":"2026-01-22T09:05:24.801Z","avatar_url":"https://github.com/ahmetbarut.png","language":"PHP","funding_links":[],"categories":[],"sub_categories":[],"readme":"- [Doğrulama Hakkında](#doğrulama-hakkında)\n- [Özellikleri](#özellikleri)\n- [Gereklilikler](#gereklilikler)\n- [Basit Kullanım](#basit-kullanım)\n- [Kurallar](#kurallar)\n- [Kurulum Ve Kural Tanımlama](#kurulum-ve-kural-tanımlama)\n  - [Kurulum](#kurulum)\n  - [Kural Tanımlama](#kural-tanımlama)\n- [Parametre Gönderme](#parametre-gönderme)\n# Doğrulama Hakkında\nBu doğrulama paketi, size kolay bir şekilde formları doğrulamanıza olanak sağlar. Basit mantık üzerinde işleyişi yatıyor. Kuralı tanımla, kuralı nesneye tanıt ve kuralı kullan şeklindedir.\n\n`Illuminate\\Validation` Laravel'den esinlenilmiştir. \n\n# Özellikleri\n* Özel kurallar belirleme\n* Özel hata mesajları belirleme\n* Kullanım kolaylığı\n\n# Gereklilikler\n* composer \n* php \u003e= 7.4.23\n# Basit Kullanım\nPaketi kurmadan önce basit kullanımına bakalım:\n```php\n$validation = new ahmetbarut\\Validation\\Validate();\n\n$validation-\u003esetFields($_POST)-\u003esetRules(\n    [\n        \"id\" =\u003e [\"required\", \"number\"],\n        \"name\" =\u003e [\"string\", \"required\"],\n        \"date\" =\u003e [\"date\", \"required\"],\n    ]\n)-\u003emake();\n```\n`setFields` yöntemi, form alanlarını dizi şeklinde vermenizi sağlar.\n`setRules` yöntemi, kurallardan geçecek olan alanları belirtmemizi sağlar.\n`make` yöntemi, sıraya alınan işleri yürütür ve sonucu döndürür. Başarı durumunda `true`, başarısızlık durumunda ise hata mesajı döndürür.\n\n# Kurallar\nKurallar, ilgili input alanlarının karşılaması gereken koşulları belirtmeyi sağlar. Yani basitçe ilgili input alanında sadece sayı ve 1-9 arasında değeri kabul ediyoruz normal durumda bunun için koşul yazıp, o şekilde doğrularız burda sorun yok ama birden fazla form alanı varsa ? Bu durumda sürekli kopyala/yapıştır yapmamız gerekebilir fakat burda kural yazınca ona bile gerek kalmıyor 1 defa yaz sürekli kullan ve karmaşayı da önlüyor.\n\n# Kurulum Ve Kural Tanımlama\n## Kurulum\nKurulum için `composer`'e ihtiyacımız var. [getcomposer.com](https://getcomposer.com/download) adresinden indirebilirsiniz.\n\n```bash\n    composer require ahmetbarut/validation\n```\nEğer uygulamanızda Container(Kapsayıcı) kullanılıyorsa nesneyi kapsayıcı içinde oluşturmanız daha sağlıklı olur.\n\n## Kural Tanımlama\nKural tanımlamak için öncelikle bu arayüzü `ahmetbarut\\Validation\\Validation\\Rule` **implement** etmeniz gerekiyor. İlgili arayüzde 2 yöntemi ekletmek isteyecek. Bunlar: `check` ve `message`\n`check` yönteminde, koşul yazmanızı sağlar ve duruma göre `bool` değer döndürmeniz gerekli.\n`message` yönteminde eğer başarısızlık varsa ilgili mesaj geriye döndürülür.\nÖrenk Sınıf:\n```php \nnamespace ahmetbarut\\Validation\\Validation\\Rules;\n\nuse ahmetbarut\\Validation\\Validation\\Rule;\n\nclass Number implements Rule\n{\n\n    public function check(string $attr, string $value): bool\n    {\n        return is_numeric($value);\n    }\n\n    public function message(): string\n    {\n        return \"Sayısal olmalıdır!\";\n    }\n}\n```\nBu sınıfı nesneye tanıtmak için nesneyi ilk oluşturduğumuzda verebiliriz. Bu arada nesneyi isteklerin ilk geldiği veya isteklerin geçtiği yerde oluşturmanız gerekli sonraki durumlarda böyle bir zorunluluk yok. Yani şöyle, eğer kural tanımlanacaksa belirttiğim şekilde olması gerekli. Sonraki durumda kuralların tutulduğu değişken `static` olduğu için nesneyi bir sonraki sefer ürettiğinizde yok olmaz önceki değerleri taşır.\n\nKural tanımlamanın 1 kuralı vardır. \nDizi şeklinde verilmesi gerekir. Örn [\"kural_adi\" =\u003e Kural::class] kurala verilmek istenen isim ve sınıfın alan adı yani `namespace`.\nKuralı tanımlayalım :\n```php\nuse ahmetbarut\\Validation\\Validate;\nuse ahmetbarut\\Validation\\Validation\\Rule;\n\nrequire_once \"./vendor/autoload.php\";\n\nclass Number implements Rule\n{\n\n    public function check(string $attr, string $value): bool\n    {\n        return is_numeric($value);\n    }\n\n    public function message(): string\n    {\n        return \"Sayısal olmalıdır!\";\n    }\n}\n\n$validation = new ahmetbarut\\Validation\\Validate([\"numara\" =\u003e \\Number::class]);\n\n$validation-\u003esetFields($_POST)-\u003esetRules(\n    [\n        \"id\" =\u003e [\"required\", \"numara\"],\n        \"name\" =\u003e [\"string\", \"required\"],\n        \"date\" =\u003e [\"date\", \"required\"],\n    ]\n)-\u003emake();\n```\nVerilen form alanlarını nesne üzerinden almak istiyorsanız\n```php\n$validation = new ahmetbarut\\Validation\\Validate([\"numara\" =\u003e \\Number::class]);\n\n$validation-\u003esetFields($_POST)-\u003esetRules(\n    [\n        \"id\" =\u003e [\"required\", \"numara\"],\n        \"name\" =\u003e [\"string\", \"required\"],\n        \"date\" =\u003e [\"date\", \"required\"],\n    ]\n)-\u003emake();\n\n$validation-\u003egetAllFields();\n```\n\n# Parametre Gönderme\nKurala parametre atanabiliyor. Ama öncesinde ilgili kuralın `__construct` yöntemi tanımlı olmalı. Onun dışında herhangi bir eklemeye ihtiyaç duymuyor.\n```php\n$validation = new ahmetbarut\\Validation\\Validate();\n\n$validation-\u003esetFields($_POST)-\u003esetRules(\n    [\n        \"id\" =\u003e [\"required\",  new Max(50)],\n        \"name\" =\u003e [\"string\", \"required\"],\n        \"date\" =\u003e [\"date\", \"required\"],\n    ]\n)-\u003emake();\n\n$validation-\u003egetAllFields();\n```","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmetbarut%2Fvalidation","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fahmetbarut%2Fvalidation","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fahmetbarut%2Fvalidation/lists"}