This plugin contains various localized validation classes for specific countries.
This branch is for use with CakePHP 5.x. See version map for details.
See sandbox.dereuromark.de/sandbox/localized for live sandbox demo on localized validation.
You can install this plugin into your CakePHP application using composer.
The recommended way to install composer packages is:
composer require cakephp/localized
Load your plugin using
bin/cake plugin load Cake/Localized
or by manually adding 'Cake/Localized'
to the array in your app's config/plugins.php
.
Localized validation classes can be used for validating model fields.
namespace App\Model\Table;
use Cake\ORM\Table;
use Cake\Localized\Validation\FrValidation;
use Cake\Validation\Validator;
class PostsTable extends Table
{
public function validationDefault(Validator $validator): Validator
{
$validator->setProvider('fr', FrValidation::class);
$validator->add('phoneField', 'myCustomRuleNameForPhone', [
'rule' => 'phone',
'provider' => 'fr',
]);
}
}
For further information on validation rules see the CakePHP documentation on validation
This plugin also houses translations for the client-facing translated strings in the core (the cake
domain). to use these files link or copy them
into their expected location: resources/locales/<locale>/cake.po
If you find that your country is not part of the Localized plugin, please fork the project on GitHub. Once you have forked the project you can commit your validator class (and any test cases). As soon as you have pushed your changes back to GitHub you can send a pull request and your changes will be reviewed and merged in, or feedback will be given.
There are a few methods that are common to all classes, defined through the interface "ValidationInterface":
phone()
to check a phone numberpostal()
to check a postal codepersonId()
to check a country specific person ID
Please try to fit your validation rules in that naming scheme. Apart from that you can also define further validation methods in your implementing class, of course.
If you have issues with Localized, you can report them at github.com/cakephp/localized/issues.