pfrug / validate-document-uy
Library to validate Uruguayan identity documents (CI numbers)
v3.0
2025-05-06 20:12 UTC
Requires
- php: ^8.2
- illuminate/support: ^11.0
Requires (Dev)
- orchestra/testbench: ^9.0
- phpunit/phpunit: ^10.0
- squizlabs/php_codesniffer: ^3.7
This package is auto-updated.
Last update: 2025-05-07 17:47:58 UTC
README
A Laravel 11+ package for validating Uruguayan identity documents (Cédula de Identidad).
Supports validation via rule class or shorthand string rule (validate_ci
), includes localization support and random generation for testing.
Installation
composer require pfrug/validate-document-uy
Register the service provider
In bootstrap/app.php
:
use Pfrug\ValidateDocumentUy\Providers\ValidateDocumentUyServiceProvider; ->withProviders([ ValidateDocumentUyServiceProvider::class, ])
Usage
Validation via string rule
$request->validate([ 'document' => 'required|validate_ci', ]);
Validation via rule class
use Pfrug\ValidateDocumentUy\Rules\ValidUruguayanCiRule; $request->validate([ 'document' => ['required', new ValidUruguayanCiRule()], ]);
Using the facade
use Pfrug\ValidateDocumentUy\Facades\ValidateDocumentUy; ValidateDocumentUy::isValid('12345672'); // true ValidateDocumentUy::controlDigit('1234567'); // returns 2 ValidateDocumentUy::generateRandomDocument(); // returns a valid CI string
Translations
Validation messages are available in English and Spanish.
To publish the translation files:
php artisan vendor:publish --tag=validate-document-uy
The files will be located in:
resources/lang/vendor/validate-document-uy/en/validation.php
resources/lang/vendor/validate-document-uy/es/validation.php
Tests
vendor/bin/phpunit
Includes unit and feature tests for all validation cases.
Directory structure
src/
├── Facades/
│ └── ValidateDocumentUy.php
├── Providers/
│ └── ValidateDocumentUyServiceProvider.php
├── Rules/
│ └── ValidUruguayanCiRule.php
├── Services/
│ └── UruguayanCiValidator.php
├── Support/
│ └── ValidatesUruguayanCi.php
License
This package is open-sourced software licensed under the MIT license.