/tckimlikno

Turkish Identification Number Verification & Validation Package for Laravel

Primary LanguagePHPMIT LicenseMIT

TCKimlikNo

MIT Licensed Latest Version on Packagist Total Downloads Build Status Quality Score StyleCI

Turkish Identification Number Verification & Validation Package for Laravel.

Installation

Via Composer

$ composer require deligoez/tckimlikno

If you are using Laravel 5.5+, the package will automatically register the service provider for you.

Usage

use Deligoez\TCKimlikNo\TCKimlikNo;


// Verifies Citizenship Number According to it's Algorithm.
// Returns Boolean
TCKimlikNo::verify('12345678901'); // Returns false
TCKimlikNo::verify('10000000146'); // Returns true

// Verifies Parameters and validates all using nvi.gov.tr API
// Returns Boolean
TCKimlikNo::validate('10000000146', 'Yunus Emre', 'Deligöz', '1900')
// Auto Uppercase Disabled
TCKimlikNo::validate('10000000146', 'YUNUS EMRE', 'DELİGÖZ', '1900', false)

Available Laravel Validation Rules

TCKimlikNoVerify

// In a Form Request Class

public function rules()
{
    return [
        'tckimlikno' => ['required', new TCKimlikNoVerify()],
    ];
}
// In a Controller

use Deligoez\TCKimlikNo\Rules\TCKimlikNoVerify;

/**
 * Store a tckn.
 *
 * @param  Request  $request
 * @return Response
 */
public function store(Request $request)
{
    $validatedData = $request->validate([
        'tckn' => ['bail', 'required', new TCKimlikNoVerify()],
    ]);

    // tckn is valid...
}

TCKimlikNoValidate

// In a Form Request Class

public function rules()
{
    return [
        'tckimlikno' => ['required', new TCKimlikNoValidate(
            $name,
            $surname,
            $birthYear,
            $autoUppercase // Optional, defaults to true
        )],
    ];
}

Faker Provider

use Deligoez\TCKimlikNo\Provider\TCKimlikNoFakerProvider;

$faker = Faker\Factory::create();
$faker->addProvider(new TCKimlikNoFakerProvider($faker));

// a Random Valid TCKN
$tckn = $faker->tckn; // 60174067810 

Changelog

Please see the changelog for more information on what has changed recently.

Testing

$ composer test

Contributing

Please see contributing.md for details and a todo list.

Security

If you discover any security related issues, please email ye@deligoz.me instead of using the issue tracker.

Credits

License

MIT. Please see the license file for more information.