Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Tckimlik Laravel Package

epigra/tckimlik

A PHP package for validating and generating Turkish TC Kimlik (national ID) numbers, with Laravel validation rule support and a simple API for checking ID format and checksum, making Turkish identity verification easy to add to forms and applications.

View on GitHub
Deep Wiki
Context7

TC Kimlik Numarası Kontrolü ve Doğrulaması (Validation of Turkish Identification Number)

Frequently asked questions about Tckimlik
How do I install epigra/tckimlik with Composer in a Laravel application?
Install it with composer require epigra/tckimlik and pin the version range you have evaluated, such as ^1.2. It is a leaf validation dependency with no service provider or configuration required, so there is nothing to register in Laravel after Composer installs it. Then use its validation rule in a form request or call its check API from your own service.
Does epigra/tckimlik include a Laravel validation rule for TC Kimlik numbers?
Yes. The package provides Laravel validation rule support for Turkish TC Kimlik numbers in addition to a direct API for format and checksum checks. You can add the rule to a form request's rules() array or use it in a validator call. For maintainability, consider wrapping it in your own TurkishIdValidator adapter so the vendor call is swappable.
Which Laravel and PHP versions does epigra/tckimlik support?
The assessment describes it as compatible with Laravel 9, 10, and 11 applications on PHP 8.x with the intl extension enabled. Because it is a pure validation helper and not tied to framework internals, it also fits controller-layer form requests or domain-level value objects. Confirm the exact composer.json constraints for your target versions before pinning.
Does epigra/tckimlik require PHP's intl extension?
Version 1.2.0 changes the internal trUpper helper to delegate to PHP's Transliterator, which is provided by ext-intl. That means the transliteration path needs ext-intl at runtime, and you should verify that composer.json declares it and that your production images, CI runners, and shared hosting include it. If ext-intl is missing, the failure may appear at runtime as a class-not-found error rather than at install time.
Can epigra/tckimlik generate valid TC Kimlik numbers for testing?
Yes. The package is described as validating and generating Turkish TC Kimlik numbers, so you can use it to produce values for tests and local fixtures. Treat generated IDs as test data only, and pair them with known-valid and known-invalid examples in your regression suite. Also test a few malformed and Unicode inputs so you catch any behavioral differences from the transliteration change.
How can I validate a Turkish ID number outside Laravel form validation?
Use the package's simple API directly in a domain service, value object, or custom validator adapter. It exposes checks for ID format and checksum without requiring Laravel's validation pipeline. Wrapping the call behind an application-owned TurkishIdValidator interface keeps the vendor dependency isolated and makes future replacement easier.
Is epigra/tckimlik safe for production, and what maintenance risks should I consider?
Operationally it is a small, low-carrying-cost validation utility with no persistence, queues, or configuration surface, but it is a single-maintainer, low-activity package, so bus factor matters. The main release risk is the ext-intl runtime requirement introduced by the v1.2.0 transliteration change. Verify ext-intl on every target environment, add regression tests for known and edge-case TCKNs, and consider wrapping the package behind your own interface.
What changed in epigra/tckimlik v1.2.0, and is it a breaking change?
v1.2.0 changes only the internal trUpper helper to delegate to PHP's Transliterator structure, fixing Turkish locale casing such as the dotted and dotless i problem. The public API is unchanged between v1.1.0 and v1.2.0, so it is not a semver breaking change for normal call sites. The compatibility concern is environmental: confirm ext-intl is available and declared, and run a validation regression check before promoting.
Should I use epigra/tckimlik or implement the TC Kimlik validation algorithm myself?
Use the package if you want a ready-made Laravel validation rule, a small API, and generation support without writing the checksum logic yourself. Consider vendoring the roughly 20-line TC Kimlik algorithm if you want to remove a single-maintainer dependency and are prepared to own the tests for valid, invalid, and Unicode edge cases. A middle path is to adopt the package behind an application-owned adapter so you can swap or vendor it later at low cost.
How should I test TC Kimlik validation with epigra/tckimlik, including Unicode edge cases?
Add feature tests that assert known-valid and known-invalid TC Kimlik numbers through the rule or direct API, then include malformed lengths, non-numeric input, and Unicode edge cases that exercise the trUpper and transliteration path. Run those tests on an image that matches production with ext-intl enabled so you catch environment-specific failures. If you wrap the package in your own adapter, test the adapter contract rather than every vendor call.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle
glavweb/extra-bundle
glavweb/api-bundle
glavweb/admin-bundle