avto-dev/identity-laravel
IDEntity
IDEntity (identification entities) is objects with implemented methods of validation, normalization, and optional automatic type determination.
Installation
Require this package with composer using the next command:
$ composer require avto-dev/identity-laravel "^6.0"
Installed
composeris required. To install composer, please click here.
Please note that you need to fix the major version of the package.
After that you can "publish" configuration file (./config/identity.php) using next command:
$ ./artisan vendor:publish --provider="AvtoDev\IDEntity\ServiceProvider"
Usage
Below you can find some usage examples.
Type detection:
use AvtoDev\IDEntity\IDEntity;
IDEntity::is('JF1SJ5LC5DG048667', IDEntity::ID_TYPE_VIN); // true
IDEntity::is('A123AA177', IDEntity::ID_TYPE_VIN); // false
IDEntity::is('JF1SJ5LC5DG048667', IDEntity::ID_TYPE_GRZ); // false
IDEntity::is('A123AA177', IDEntity::ID_TYPE_GRZ); // true
IDEntity::is('14:36:102034:2256', IDEntity::ID_TYPE_CADASTRAL_NUMBER); // true
IDEntity::is('JF1SJ5LC5DG048667', IDEntity::ID_TYPE_CADASTRAL_NUMBER); // false
$valid_vin = IDEntity::make('JF1SJ5LC5DG048667', IDEntity::ID_TYPE_VIN);
$valid_vin->isValid(); // true
$invalid_vin = IDEntity::make('SOME INVALID', IDEntity::ID_TYPE_VIN);
$invalid_vin->isValid(); // false
Entities creation:
use AvtoDev\IDEntity\IDEntity;
use AvtoDev\IDEntity\Types\IDEntityCadastralNumber;
$vin = IDEntity::make('JF1SJ5LC5DG048667');
$vin->getType(); // 'VIN'
$vin->getValue(); // 'JF1SJ5LC5DG048667'
$vin->isValid(); // true
\get_class($vin); // 'AvtoDev\IDEntity\Types\IDEntityVin'
$cadastral_number = new IDEntityCadastralNumber('10:01:0030104:691');
$cadastral_number->getType(); // 'CADNUM'
$cadastral_number->isValid(); // true
Some typed entity classes contains a lot of additional methods for a working with passed value.
Value normalization:
use AvtoDev\IDEntity\IDEntity;
use AvtoDev\IDEntity\Types\IDEntityVin;
$vin = new IDEntityVin(' jf1SJ5LC5DG048 667');
$vin->getValue(); // 'JF1SJ5LC5DG048667'
IDEntity::make(' a123аY777', IDEntity::ID_TYPE_GRZ)->getValue(); // 'А123АУ777'
Value masking:
<?php
use AvtoDev\IDEntity\Types\IDEntityVin;
$vin = IDEntityVin::make('JF1SJ5LC5DG048667');
$vin->getMaskedValue(2, 4); // JF***********8667
$vin->getMaskedValue(4, 2, '_'); // JF1S___________67
Testing
For package testing we use phpunit framework and docker-ce + docker-compose as develop environment. So, just write into your terminal after repository cloning:
$ make build
$ make latest # or 'make lowest'
$ make test
Changes log
Changes log can be found here.
Support
If you will find any package errors, please, make an issue in current repository.
License
This is open-sourced software licensed under the MIT License.
Related Packages
A column for Filament Tables to which combines an avatar, name and description.
A Laravel plugin to register and keep control of the users who make creations, u...
Version History
| Version | Released | PHP | Laravel | License |
|---|---|---|---|---|
| v6.0.1 | ^8.2 | ~11.0 | | MIT | |
| v6.0.0 | ^8.1 | ~10.0 | | MIT | |
| v5.11.0 | ^8.2 | ~11.0 | | MIT | |
| v5.10.0 | ^8.1 | ~10.0 | | MIT | |
| v5.9.0 | ^8.1 | ~10.0 | | MIT | |
| v5.8.0 | ^8.1 | ~10.0 | | MIT | |
| v5.7.0 | ^8.0.2 | ~9.0 | | MIT | |
| v5.6.0 | ^7.3 | | ~6.0 | | MIT | |
| v5.5.1 | ^7.2 | | ~6.0 | | MIT | |
| v5.5.0 | ^7.2 | | ~6.0 | | MIT | |
| v5.4.0 | ^7.2 | | ~6.0 | | MIT | |
| v5.3.0 | ^7.2 | | ~6.0 | | MIT | |
| v5.2.0 | ^7.2 | ~6.0 | | MIT | |
| v5.1.0 | ^7.1.3 | ^5.5 | | MIT | |
| v5.0.0 | ^7.1.3 | ^5.5 | | MIT | |
| v4.1.0 | ^7.1.3 | >=5.4.0 <5.9.0 | MIT | |
| v4.0.0 | ^7.1.3 | >=5.4.0 <5.9.0 | MIT | |
| v3.1.0 | ^5.6 | | >=5.4.0 <5.8.0 | MIT | |
| v3.0.1 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v3.0.0 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v2.4.0 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v2.3.0 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v2.2.0 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v2.1.3 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v2.1.2 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v2.1.1 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v2.1.0 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v2.0 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v1.1.7 | ^5.6 | | >=5.4.0 <5.7.0 | MIT | |
| v1.1.6 | ^5.6 | | >=5.4.0 <5.7.0 | MIT |
Showing the latest 30 of 37. See every release on Packagist