PHPackages                             isaeken/php-tc-kimlik - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Validation &amp; Sanitization](/categories/validation)
4. /
5. isaeken/php-tc-kimlik

ActiveLibrary[Validation &amp; Sanitization](/categories/validation)

isaeken/php-tc-kimlik
=====================

PHP Turkey Identity Validation

1.4.5(5y ago)21.3k↓82.1%1MITPHPPHP ^7.4|^8.0

Since Jan 21Pushed 5y ago1 watchersCompare

[ Source](https://github.com/isaeken/php-tc-kimlik)[ Packagist](https://packagist.org/packages/isaeken/php-tc-kimlik)[ Docs](https://www.isaeken.com.tr)[ RSS](/packages/isaeken-php-tc-kimlik/feed)WikiDiscussions master Synced 3d ago

READMEChangelog (2)Dependencies (4)Versions (3)Used By (1)

PHP TC Kimlik
=============

[](#php-tc-kimlik)

Bu kütüphaneyi kullanarak basit ve hızlı bir şekilde kimlik kontrolleri yapın. Örnek bir kullanım:

```
use DateTime;
use IsaEken\PhpTcKimlik\PhpTcKimlik;

$sonuc = PhpTcKimlik::isValidIdentity("tckimlikno", "ad", "soyad", new DateTime("dogum tarihi"));
```

---

[![PHP TC Kimlik](https://camo.githubusercontent.com/d6e962e664bfa3c8df312f4730c2027c8496d5a167c235ae3f4be544c79162ce/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f54432532304b696d6c696b2e6a7065673f7468656d653d6c69676874267061636b6167654d616e616765723d636f6d706f73657225323072657175697265267061636b6167654e616d653d697361656b656e2f7068702d74632d6b696d6c696b267061747465726e3d617263686974656374267374796c653d7374796c655f31266465736372697074696f6e3d54432532306b696d6c696b2532306b6f6e74726f6c253230692543352539466c656d6c657269266d643d312673686f7757617465726d61726b3d3026666f6e7453697a653d313530707826696d616765733d68747470733a2f2f7777772e7068702e6e65742f696d616765732f6c6f676f732f7068702d6c6f676f2e737667)](https://camo.githubusercontent.com/d6e962e664bfa3c8df312f4730c2027c8496d5a167c235ae3f4be544c79162ce/68747470733a2f2f62616e6e6572732e6265796f6e64636f2e64652f54432532304b696d6c696b2e6a7065673f7468656d653d6c69676874267061636b6167654d616e616765723d636f6d706f73657225323072657175697265267061636b6167654e616d653d697361656b656e2f7068702d74632d6b696d6c696b267061747465726e3d617263686974656374267374796c653d7374796c655f31266465736372697074696f6e3d54432532306b696d6c696b2532306b6f6e74726f6c253230692543352539466c656d6c657269266d643d312673686f7757617465726d61726b3d3026666f6e7453697a653d313530707826696d616765733d68747470733a2f2f7777772e7068702e6e65742f696d616765732f6c6f676f732f7068702d6c6f676f2e737667)

Kurulum
-------

[](#kurulum)

Composer kullanarak basit bir şekilde projenize ekleyebilirsiniz:

```
composer require isaeken/php-tc-kimlik
```

Kullanım
--------

[](#kullanım)

### Laravel

[](#laravel)

> Türkçe dil için `config/app.php` dosyasında `locale` değişkenini `tr` yapın.

#### Kimlik Numarası

[](#kimlik-numarası)

```
public function index(Request $request)
{
    $request->validate([
        'tc_kimlik_numarasi' => [new IsaEken\PhpTcKimlik\Rules\IdentityNumber],
    ]);
}
```

#### İsim Kontrolü

[](#i̇sim-kontrolü)

```
public function index(Request $request)
{
    $request->validate([
        'isim' => [new IsaEken\PhpTcKimlik\Rules\RealName],
        'soyisim' => [new IsaEken\PhpTcKimlik\Rules\RealName],
    ]);
}
```

#### Yıl Kontrolü

[](#yıl-kontrolü)

```
public function index(Request $request)
{
    $request->validate([
        'dogum_yili' => ['required', new IsaEken\PhpTcKimlik\Rules\RealYear],
    ]);
}
```

#### Kimlik Kontrolü

[](#kimlik-kontrolü)

```
public function index(Request $request)
{
    $request->validate([
        'tc_kimlik_numarasi' => ['required', new IsaEken\PhpTcKimlik\Rules\IdentityNumber],
        'isim' => ['required', new IsaEken\PhpTcKimlik\Rules\RealName],
        'soyisim' => ['required', new IsaEken\PhpTcKimlik\Rules\RealName],
        'dogum_yili' => ['required', new IsaEken\PhpTcKimlik\Rules\RealYear],
    ]);

    $validator = new IsaEken\PhpTcKimlik\IdentityValidator(
        "tc_kimlik_numarasi", // varsayılan: identity_number
        "isim", // varsayılan: first_name
        "soyisim", // varsayılan: last_name
        "dogum_yili", // varsayılan: birth_year
        "post", // opsiyonel method
        $request // opsiyonel
    );

    $validator->validate();
}
```

Örnek:

```
public function index(Request $request)
{
    $request->validate([
        'identity_number' => ['required', new IsaEken\PhpTcKimlik\Rules\IdentityNumber],
        'first_name' => ['required', new IsaEken\PhpTcKimlik\Rules\RealName],
        'last_name' => ['required', new IsaEken\PhpTcKimlik\Rules\RealName],
        'birth_year' => ['required', new IsaEken\PhpTcKimlik\Rules\RealYear],
    ]);

    ((new IsaEken\PhpTcKimlik\IdentityValidator())->validate());
}
```

---

### Hızlı kullanım

[](#hızlı-kullanım)

#### Kimlik bilgilerinin kontrolü

[](#kimlik-bilgilerinin-kontrolü)

Kimlik bilgilerini kontrol etmek için kişinin; kimlik numarası, adı, soyadı ve doğum yılı olmalıdır. Basit bir şekilde bu bilgiler ile örnekteki kodu kullanarak bir doğrulama yapabilirsiniz.

```
// değişkenler sırası ile; kimlik numarası, adı, soyadı, doğum tarihi.
// doğum tarihi DateTimeInterface olmalıdır eğer gün ve ay girilmek istenmezse rastgele gün ay belirtilebilir çünkü bu işlemde sadece doğum yılı kullanılacaktır: new DateTime("01.01.2000")
IsaEken\PhpTcKimlik\PhpTcKimlik::isValidIdentity("123456789", "isa", "eken", new DateTime("10.04.2002"));
```

#### Yabancı kimlik bilgilerinin kontrolü

[](#yabancı-kimlik-bilgilerinin-kontrolü)

Kimlik bilgilerini kontrol ederken kullanılan herşey bu işlem içinde geçerlidir. Bu işlemde kimlik numarasına syntax kontrolü yapılmaz ve direkt olarak nvi'den kimlik kontrolü yapılır.

```
IsaEken\PhpTcKimlik\PhpTcKimlik::isValidForeignIdentity("123456789", "isa", "eken", new DateTime("10.04.2002"));
```

#### Kimlik kart bilgilerinin kontrolü

[](#kimlik-kart-bilgilerinin-kontrolü)

Kimlik kartı bilgilerini kontrol etmek için kişinin; kimlik numarası, kart seri numarası, adı, soyadı ve doğum tarihi olmalıdır.

```
IsaEken\PhpTcKimlik\PhpTcKimlik::isValidIdentityCard(
    "123456789", // kimlik numarası
    "xxxxxxxxx", // seri numarası
    "isa", // ad
    "eken", // soyad
    new DateTime("10.04.2002") // doğum tarihi. gün, ay ve yıl gerekli
);
```

### Detaylı kullanım ve kimlik arayüzü

[](#detaylı-kullanım-ve-kimlik-arayüzü)

#### Kimlik arayüzü

[](#kimlik-arayüzü)

Tüm işlemlerden önce ilk olarak kimlik sınıfını kullanarak bir kimlik oluşturmalısınız.

```
$kimlik = new \IsaEken\PhpTcKimlik\PhpTcKimlik;
```

bu sınıfa kişinin kimlik bilgilerini chained fonksiyonlar ile verebilirsiniz. Varsayılan değerler boş olacaktır.

Verileri almak için kullanabileceğiniz fonksiyonlar:

```
$kimlik->getIdentityNumber(); // string olarak kişinin kimlik numarasını döndürür.
$kimlik->getSurname(); // string olarak kişinin soyadını döndürür.
$kimlik->getGivenName(); // string olarak kimlik adını döndürür.
$kimlik->getBirthDate(); // DateTimeInterface olarak kişinin doğum tarihini döndürür.
$kimlik->getGender(); // string olarak kişinin cinsiyetini döndürür.
$kimlik->getDocumentNumber(); // string olarak kişinin kimlik kartının seri numarasını döndürür.
$kimlik->getNationality(); // string olarak kişinin uyruğunu döndürür.
$kimlik->getValidUntil(); // DateTimeInterface olarak kişinin kimliğinin son geçerlilik tarihini döndürür.
$kimlik->getMotherName(); // string olarak kişinin anne adını döndürür.
$kimlik->getFatherName(); // string olarak kişinin baba adını döndürür.
$kimlik->getIssuedBy(); // string olarak kişinin kimliğini veren makanım adını döndürür.
```

Verileri uygulamak için kullanabileceğiniz fonksiyonlar. Tüm fonksiyonlar `IdentityCardInterface` dönecektir, yani tüm fonksiyonları ard arda kullanabilirsiniz (chianed).

```
$kimlik->setIdentityNumber("12345678910"); // kimlik numarasını değiştir.
$kimlik->setSurname("Soyadı"); // soyadı değiştir.
$kimlik->setGivenName("Adı"); // adı değiştir.
$kimlik->setBirthDate(new DateTime("01.28.2021")); // doğum tarihini değiştir.
$kimlik->setGender("E / M"); // cinsiyeti değiştir.
$kimlik->setDocumentNumber("xxxxxxxxx"); // seri numarasını değiştir.
$kimlik->setNationality("T.C./TUR"); // uyruğu değiştir.
$kimlik->setValidUntil(new DateTime("01.28.2021")); // son geçerlilik tarihini değiştir.
$kimlik->setMotherName("Annesi"); // anne adını değiştir.
$kimlik->setFatherName("Babası"); // bana adını değiştir.
$kimlik->setIssuedBy("T.C."); // kimliği veren makamım adını değiştir.
```

#### Kontroller

[](#kontroller)

Oluşturulan kimliği kullanarak kontrolleri yapabilirsiniz.

##### Kimlik kontrolü

[](#kimlik-kontrolü-1)

Kimlik numarası, ad, soyad ve doğum yılını kullanarak nvi üzerinden bir kontrol yapmak için:

```
$kimlik->validateIdentityNumber(); // boolean
```

Yabancı kimlik numarası, ad, soyad ve doğum tarihi kullanarak nvi üzerinden bir kontrol yapmak için:

```
$kimlik->validateForeignIdentityNumber(); // boolean
```

Kimlik numarası, kimlik seri numarası, ad, soyad ve doğum tarihi kullanarak nvi üzerinden kimlik kartı kontrolü yapmak için:

```
$kimlik->validateIdentityCard(); // boolean
```

##### Örnekler

[](#örnekler)

Kimlik numarası / Yabancı kimlik numarası kontrolü

```
$kimlik = new IsaEken\PhpTcKimlik\PhpTcKimlik;
$kimlik->setIdentityNumber("12345678910");
$kimlik->setGivenName("ad");
$kimlik->setSurname("soyad");
$kimlik->setBirthDate(new DateTime("28.04.2021"));
$kimlik->validateIdentityNumber(); // kimlik numarası kontrolü
$kimlik->validateForeignIdentityNumber(); // yabancı kimlik numarası kontrolü
```

Kimlik kartı kontrolü

```
(new IsaEken\PhpTcKimlik\PhpTcKimlik)
    ->setIdentityNumber("12345678910")
    ->setDocumentNumber("xxxxxxxxx")
    ->setGivenName("ad")
    ->setSurname("soyad")
    ->setBirthDate(new DateTime("28.04.2021"))
    ->validateForeignIdentityNumber();
```

### Yardımcı fonksiyonlar

[](#yardımcı-fonksiyonlar)

```
use IsaEken\PhpTcKimlik\Helpers;

// yazıyı Türkçe karakterleri dikkate alarak küçük harflere çevirir.
Helpers::lower("TÜRKÇE"); // türkçe

// yazıyı Türkçe karakterleri dikkata alarak büyük harflere çevirir.
Helpers::upper("türkçe"); // türkçe

// kimlik numarasının syntaxının doğruluğunu kontrol eder.
Helpers::verifyIdentity("12345678910"); // true
Helpers::verifyIdentity("00987654321"); // false

// Türkçe karakterler içeren bir isimin syntaxını kontrol eder.
Helpers::verifyName("ata"); // true
Helpers::verifyName("!'\""); // false

// değişkenin bir yılı ifade edip etmediğini kontrol eder.
Helpers::verifyYear(1881); // true
Helpers::verifyYear("1881"); // true
Helpers::verifyYear(-15); // false
Helpers::verifyYear("-15"); // false
Helpers::verifyYear("www"); // false

/**
 * Verify year is valid.
 *
 * @param int|string $year
 * @param int $min
 * @param int $max
 * @return bool
 */
Helpers::verifyYear("2000", 2000, 3000); //  true
```

Testler
-------

[](#testler)

```
composer test
```

Lisans
------

[](#lisans)

Bu yazılım MIT lisansı altında dağıtılmaktadır. [Lisans Dosyasını](https://github.com/isaeken/php-tc-kimlik/blob/master/LICENSE.md) inceleyin.

###  Health Score

30

—

LowBetter than 62% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity20

Limited adoption so far

Community9

Small or concentrated contributor base

Maturity59

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~9 days

Total

2

Last Release

1981d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/27427375a2832cfe00cf076041951fd56f9cafa9696e77887bee805101f49bb9?d=identicon)[isaeken](/maintainers/isaeken)

---

Top Contributors

[![isaeken](https://avatars.githubusercontent.com/u/57031552?v=4)](https://github.com/isaeken "isaeken (37 commits)")

---

Tags

phplaravelvalidationidentitytcturkeykimlik

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/isaeken-php-tc-kimlik/health.svg)

```
[![Health](https://phpackages.com/badges/isaeken-php-tc-kimlik/health.svg)](https://phpackages.com/packages/isaeken-php-tc-kimlik)
```

###  Alternatives

[spatie/laravel-health

Monitor the health of a Laravel application

87512.0M167](/packages/spatie-laravel-health)[yorcreative/laravel-argonaut-dto

Argonaut is a lightweight Data Transfer Object (DTO) package for Laravel that supports nested casting, recursive serialization, and validation out of the box. Ideal for service layers, APIs, and clean architecture workflows.

1053.4k2](/packages/yorcreative-laravel-argonaut-dto)[eslazarev/wildberries-sdk

Wildberries OpenAPI clients (generated).

273.0k](/packages/eslazarev-wildberries-sdk)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
