nowo-tech / phone-input-bundle
Symfony bundle providing a phone form type with optional country prefix selector and flexible value formats
Package info
github.com/nowo-tech/PhoneInputBundle
Type:symfony-bundle
pkg:composer/nowo-tech/phone-input-bundle
Fund package maintenance!
Requires
- php: >=8.2 <8.6
- symfony/form: ^6.0 || ^7.0 || ^8.0
- symfony/framework-bundle: ^6.0 || ^7.0 || ^8.0
- symfony/twig-bundle: ^6.0 || ^7.0 || ^8.0
- symfony/validator: ^6.4 || ^7.0 || ^8.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.0
- phpstan/phpstan: ^2.0
- phpstan/phpstan-phpunit: ^2.0
- phpstan/phpstan-symfony: ^2.0
- phpunit/phpunit: ^10.0
- rector/rector: ^2.0
- symfony/dependency-injection: ^6.4 || ^7.0 || ^8.0
- symfony/http-kernel: ^6.4 || ^7.0 || ^8.0
- symfony/yaml: ^6.0 || ^7.0 || ^8.0
Suggests
- giggsey/libphonenumber-for-php: Optional E.164 validation and formatting via libphonenumber
- symfony/http-client: Required by symfony/ux-icons to fetch Iconify icons unless icons are locked locally
- symfony/ux-icons: Optional SVG country flags via ux_icon (circle-flags:xx) in flag_display=UX_ICON mode
README
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.
Features
- 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
Documentation
- Installation
- Configuration
- Usage
- Contributing
- Changelog
- Upgrading
- Release
- Security
- Engram
- Spec-driven development
Additional documentation
Quick start
composer require nowo-tech/phone-input-bundle
use Nowo\PhoneInputBundle\Form\Type\PhoneType; $builder->add('mobile', PhoneType::class);
See docs/INSTALLATION.md for form theme, CSS assets, and optional dependencies.
Demo
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.
Requirements
- PHP >= 8.2, < 8.6
- Symfony ^6.0 || ^7.0 || ^8.0
Development
make up && make install && make test make test-coverage # PHP coverage report make release-check # cs-fix, phpstan, coverage, demo healthchecks
Tests and coverage
- Tests: PHPUnit (unit + integration)
- PHP: 95.75%
- TS/JS: N/A
- Python: N/A
License
MIT — see LICENSE.
Author
Created by Nowo.tech