Weave Code
Code Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message
Polyfill Intl Normalizer

Polyfill Intl Normalizer Laravel Package

symfony/polyfill-intl-normalizer

Fallback implementation of PHP Intl’s Normalizer class when the intl extension isn’t available. Part of Symfony’s Polyfill suite, providing compatible Unicode normalization support across environments under the MIT license.

View on GitHub
Deep Wiki
Context7

Symfony polyfill for intl's Normalizer class and related functions

Frequently asked questions about Polyfill Intl Normalizer
How do I install symfony/polyfill-intl-normalizer in a Laravel project?
Run `composer require symfony/polyfill-intl-normalizer` in your Laravel project directory. The package auto-registers and requires no additional configuration or service provider setup. It’s a zero-configuration drop-in replacement for PHP’s `Normalizer` class.
Will this package work with Laravel 8/9/10 and older versions?
Yes, the package is compatible with all Laravel versions (5.5+) and PHP 7.2+. It’s part of Symfony’s polyfill ecosystem, which maintains backward compatibility. No Laravel-specific code changes are needed, so it integrates seamlessly with any version.
What happens if my Laravel app already has the Intl extension installed?
The polyfill will automatically detect the native `Normalizer` class and use it instead of the fallback implementation. This ensures no performance overhead or behavioral changes when Intl is available, making it a safe dependency to include.
How does this polyfill handle performance compared to the native Intl extension?
The polyfill is significantly slower—expect 5–20x slower performance for large datasets or bulk operations. For high-throughput workflows (e.g., real-time search or API rate limits), benchmark with your specific use case. If performance is critical, consider enabling Intl or using a custom solution.
Does this package support multilingual features like slug generation or search in Laravel?
Yes, it ensures consistent Unicode normalization across environments, which is critical for multilingual features. For example, it prevents runtime errors in slug generation (e.g., `Str::slug()`) or search indexing when the Intl extension is missing. Test with your project’s specific datasets for edge cases.
Can I use this polyfill with Laravel Scout or Elasticsearch/Algolia?
Yes, but validate behavior with your search provider. Scout or Algolia may rely on consistent Unicode normalization for indexing. If discrepancies arise, test in an environment without Intl to confirm compatibility. Consider mocking the `Normalizer` in tests to simulate such environments.
What are the risks of using this polyfill in production?
The primary risks are performance overhead and potential Unicode edge-case discrepancies (e.g., surrogate pairs). Add runtime checks for the `mbstring` extension, as it’s required but not always enabled. Profile memory usage and performance in bulk operations using tools like Blackfire or Xdebug.
How do I test my Laravel app with this polyfill when Intl is disabled?
Use PHP’s `extension_loaded()` to simulate missing Intl in tests: `if (!extension_loaded('intl')) { ... }`. Mock the `Normalizer` class in unit tests to validate behavior. In CI/CD, test on environments with Intl disabled (e.g., GitHub Actions matrix) to catch inconsistencies early.
Are there alternatives to symfony/polyfill-intl-normalizer for Laravel?
Alternatives include lightweight libraries like `voku/portable-ascii` or enabling the native Intl extension. For critical performance needs, consider proprietary solutions like the ICU library. However, Symfony’s polyfill is the most widely adopted and Laravel-compatible option, especially if you’re already using other Symfony polyfills.
How do I stay updated with this package, and when should I consider removing it?
Monitor updates via Symfony’s release cycle (quarterly). Pin the version in `composer.json` if stability is critical. Consider removing the polyfill if your deployment environments consistently support Intl, or if performance profiling shows it’s no longer a bottleneck. Use feature flags or gradual rollback strategies for migration.
Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
hexters/coinpayment
rjcodes/rjcms
act-training/laravel-permissions-manager
alimarchal/laravel-chart-of-accounts
babenkoivan/elastic-scout-driver
mkwebdesign/filament-watchdog-v5
renatomarinho/laravel-page-speed
zedmagdy/filament-business-hours
renatovdemoura/blade-elements-ui
devgeek/beacon-admin
benjamin-rqt/data-watcher-bundle
atriumphp/atrium
sandermuller/package-boost-laravel
sandermuller/boost-skills
redaxo/core
yusufgenc/filament-api-forge
l3aro/rating-star-for-filament
leek/filament-subtenant-scope
anil/file-picker
broqit/fields-ai