Symfony bundle providing a phone form type with optional country prefix selector and flexible value formats (E.164 string, separated array, or PhoneNumber value object).
⭐ Found this useful? Give it a star on GitHub so more developers can find it.
- Extends Symfony
TelTypewith an optional country prefix selector (flags, dial codes, autocomplete search) - Three model formats: CONCATENATED (E.164), SEPARATED (array), OBJECT (
PhoneNumberVO) - Validation by country ISO, dial prefix, or disabled (
phone_validation) - Configurable prefix/flag display modes and CSS classes (Bootstrap, Tailwind, Foundation, custom)
- Bundled country catalog and CSS flag icons; optional UX Icons for SVG flags
- Installation
- Configuration
- Usage
- Contributing
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
composer require nowo-tech/phone-input-bundleuse Nowo\PhoneInputBundle\Form\Type\PhoneType;
$builder->add('mobile', PhoneType::class);See docs/INSTALLATION.md for form theme, CSS assets, and optional dependencies.
Demos for Symfony 6.4, 7.0 and 8.0 live under demo/. From the bundle root:
make -C demo up-symfony8
# http://localhost:8003 (see demo/symfony8/.env.example)The demo page shows 20 field examples and a CSS framework selector (?framework=bootstrap5|tailwind2|foundation6|symfony-default). See demo/README.md.
Demos use FrankenPHP without worker mode in development (changes visible on refresh). For production worker setup, see docs/DEMO-FRANKENPHP.md.
- PHP >= 8.2, < 8.6
- Symfony ^6.0 || ^7.0 || ^8.0
make up && make install && make test
make test-coverage # PHP coverage report
make release-check # cs-fix, phpstan, coverage, demo healthchecks- Tests: PHPUnit (unit + integration)
- PHP: 95.75%
- TS/JS: N/A
- Python: N/A
MIT — see LICENSE.
Created by Nowo.tech