isaeken/php-tc-kimlik 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

isaeken/php-tc-kimlik

Composer 安装命令:

composer require isaeken/php-tc-kimlik

包简介

PHP Turkey Identity Validation

README 文档

README

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

Kurulum

Composer kullanarak basit bir şekilde projenize ekleyebilirsiniz:

composer require isaeken/php-tc-kimlik

Kullanım

Laravel

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

Kimlik Numarası

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

İsim Kontrolü

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

Yıl Kontrolü

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

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

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ü

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ı 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ü

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

Oluşturulan kimliği kullanarak kontrolleri yapabilirsiniz.

Kimlik kontrolü

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

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

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

composer test

Lisans

Bu yazılım MIT lisansı altında dağıtılmaktadır. Lisans Dosyasını inceleyin.

isaeken/php-tc-kimlik 适用场景与选型建议

isaeken/php-tc-kimlik 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 1.34k 次下载、GitHub Stars 达 2, 最近一次更新时间为 2021 年 01 月 31 日, 在 PHP 生态内属于活跃度较高的组件。

它主要适用于以下技术方向: 「php」 「validation」 「identity」 「laravel」 「turkey」 「tc」 等业务场景。在实际项目中,围绕这些方向常见需要落地的问题包括:接口对接、性能调优、并发安全、与既有框架(Laravel / ThinkPHP / Yii / Webman 等)的兼容适配,以及生产环境的日志埋点与稳定性保障。

我们在过去多个企业项目中使用过 isaeken/php-tc-kimlik 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 isaeken/php-tc-kimlik 我们能提供哪些服务?
定制开发 / 二次开发

基于 isaeken/php-tc-kimlik 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 1.34k
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 2
  • 点击次数: 18
  • 依赖项目数: 1
  • 推荐数: 0

GitHub 信息

  • Stars: 2
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2021-01-31