https://github.com/barbieswimcrew/zip-code-validator
Constraint Class for international Zipcode Validation
https://github.com/barbieswimcrew/zip-code-validator
constraints country international-zipcode-validation postal-code postal-codes postalcode validation zipcode zipcodes
Last synced: 24 days ago
JSON representation
Constraint Class for international Zipcode Validation
- Host: GitHub
- URL: https://github.com/barbieswimcrew/zip-code-validator
- Owner: barbieswimcrew
- License: mit
- Created: 2015-11-20T10:03:53.000Z (over 9 years ago)
- Default Branch: master
- Last Pushed: 2024-12-09T09:33:22.000Z (5 months ago)
- Last Synced: 2025-04-01T10:11:36.797Z (about 1 month ago)
- Topics: constraints, country, international-zipcode-validation, postal-code, postal-codes, postalcode, validation, zipcode, zipcodes
- Language: PHP
- Size: 80.1 KB
- Stars: 75
- Watchers: 2
- Forks: 18
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
Awesome Lists containing this project
README
# Constraint Class for international Zipcode Validation
[](https://github.com/barbieswimcrew/zip-code-validator/actions/workflows/ci.yaml)
[](https://packagist.org/packages/barbieswimcrew/zip-code-validator)
[](https://packagist.org/packages/barbieswimcrew/zip-code-validator)
[](./composer.json)
[](https://github.com/barbieswimcrew/zip-code-validator/stargazers)
[](https://github.com/barbieswimcrew/zip-code-validator/blob/master/LICENSE)## Installation
This package uses Composer, please checkout the [composer website](https://getcomposer.org) 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.
```bash
$ 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.
## What now?
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
createFormBuilder($address)
->add('zipcode', TextType::class, [
'constraints' => [
new ZipCodeValidator\Constraints\ZipCode([
'iso' => 'DE'
])
]
])
->add('save', SubmitType::class, ['label' => 'Create Task'])
->getForm();
```Another way would be to use the constraint as an annotation of a class property, for example:
```php
'DE'])
protected $zipCode;
}
```> Please consider to inject a valid ISO 3166 2-letter country code (e.g. DE, US, FR)!
> NOTE: This library validates against known zip code regex patterns and does not validate the existence of a zipcode.
### Use a getter to inject the country code dynamically
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
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`.```php
/**
* @ZipCode(getter="getCountry", strict=false)
*/
protected $zipCode;
```The validator will not validate empty strings and null values. To disallow them use the Symfony stock `NotNull` or `NotBlank` constraint in addition to `ZipCode`.
```php
/**
* @ZipCode(getter="getCountry")
* @NotBlank
*/
protected $zipCode;
```### Case insensitive zip code matching
In case you want to match the zip code in a case insensitive way you have to pass a `caseSensitiveCheck` parameter with `false` value via the constructor:
```php
$constraint = new ZipCode([
'iso' => 'GB',
'caseSensitiveCheck' => false
]);```
By the default the library is using case sensitive zip code matching.## Copying / License
This repository is distributed under the MIT License (MIT). You can find the whole license text in the [LICENSE](LICENSE) file.