This package uses Composer, please checkout the composer website for more information.
The following command will install zip-code-validator
into your project. It will also add a new entry in your composer.json
and update the composer.lock
as well.
$ composer require barbieswimcrew/zip-code-validator
This package follows the PSR-4 convention names for its classes, which means you can easily integrate
zip-code-validator
classes loading in your own autoloader.
For validating a zip code you need to instantiate a new ZipCode class provided by this package to set it as a constraint to your form field, for example:
<?php
//...
$form = $this->createFormBuilder($address)
->add('zipcode', TextType::class, array(
'constraints' => array(
new ZipCodeValidator\Constraints\ZipCode(array(
'iso' => 'DE'
))
)
))
->add('save', SubmitType::class, array('label' => 'Create Task'))
->getForm();
Another way would be to use the constraint as an annotation of a class property, for example:
<?php
use ZipCodeValidator\Constraints\ZipCode;
class Address
{
/**
* @ZipCode(iso="DE")
*/
protected $zipCode;
}
Please consider to inject a valid ISO 3166 2-letter country code (e.g. DE, US, FR)!
If you have a form, in which the user can select a country, you may want to validate the zip code dynamically.
In this case you can use the getter
option instead:
<?php
use ZipCodeValidator\Constraints\ZipCode;
class Address
{
/**
* @ZipCode(getter="getCountry")
*/
protected $zipCode;
protected $country;
public function getCountry()
{
return $this->country;
}
}
To disable that the validator throws an exception, when the zip code pattern is not available for a country,
you can set the strict
option to FALSE
.
/**
* @ZipCode(getter="getCountry", strict=false)
*/
protected $zipCode;
}
To avoid that the validation fails in case that there's an empty value in the zip code field
you can set the ignoreEmpty
option to TRUE
.
/**
* @ZipCode(getter="getCountry", ignoreEmpty=true)
*/
protected $zipCode;
}
This repository is distributed under the MIT License (MIT). You can find the whole license text in the LICENSE file.