A PHP library for manipulating postal addresses with international data, formatting, validation, and zones.
CommerceGuys Addressing is a PHP library for manipulating postal addresses, designed to identify precise recipient locations for shipping or billing purposes. It provides a robust data model, international address formats, validation, and formatting tools powered by CLDR and Google's address data. The library solves the complexity of handling address data consistently across different countries and locales.
PHP developers building e-commerce platforms, CRM systems, or any application requiring international address handling, validation, and formatting. It is particularly useful for projects needing standardized address management across multiple countries.
Developers choose this library for its comprehensive, up-to-date international address data, flexible formatting options, and seamless integration with Symfony Validator. Its standards-based approach and support for zones make it a reliable choice for complex address-related logic.
A PHP addressing library, powered by CLDR and Google's address data.
Open-Awesome is built by the community, for the community. Submit a project, suggest an awesome list, or help improve the catalog on GitHub.
Includes address formats, subdivisions, and translations for over 200 countries and 150+ locales, powered by CLDR and Google's address data, ensuring broad compatibility for global applications.
Offers HTML and plain text formatting with localization, plus a PostalLabelFormatter that adheres to Universal Postal Union recommendations for mailing labels, including domestic vs. international handling.
Seamlessly integrates with Symfony Validator to validate required fields, subdivision validity, and postal code patterns, providing reliable, standards-based address checks.
Supports defining zones with country, subdivision, and postal code rules, useful for shipping rates or tax calculations, as shown in the German VAT zone example.
Relies on bundled data initially from Google, now maintained by the library, which may not reflect real-time postal changes and requires manual updates, risking inaccuracies over time.
Focuses on backend logic only, so developers must build frontend address forms from scratch or find separate integrations, adding development overhead for full-stack projects.
Tied to PHP 8.0+, making it incompatible with non-PHP environments and forcing multi-language teams to seek alternative solutions or custom wrappers.
Uses separate repositories for countries, formats, and subdivisions, which can lead to verbose setup and unnecessary abstraction for basic address storage without international needs.