Weave 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 Laravel Package

symfony/polyfill

Symfony Polyfill backports newer PHP features and provides compatibility layers for missing extensions and functions, helping apps run across different PHP versions and configurations. It covers utilities like str_contains, array_key_first, mbstring/iconv, intl classes, UUID, and many PHP 7.2–8.x co...

View on GitHub
Deep Wiki
Context7
v1.43.2

Changelog (https://github.com/symfony/polyfill/compare/v1.43.1...v1.43.2)

  • bug #718 [DeepClone] Report malformed payloads like the extension (@nicolas-grekas)
  • minor #716 [DeepClone] Speed up deepclone_from_array() (@nicolas-grekas)
v1.43.0

Changelog (https://github.com/symfony/polyfill/compare/v1.42.0...v1.43.0)

  • bug #710 [Iconv] Validate charset names before loading their map (@nicolas-grekas)
  • bug #713 [DeepClone] Resolve mangled keys like the extension in deepclone_hydrate() (@nicolas-grekas)
  • bug #712 [DeepClone] Fix issues found by differential fuzzing (@nicolas-grekas)
  • bug #709 [DeepClone] Fix creating DOMNameSpaceNode, ImagickPixel and intl objects (@nicolas-grekas)
  • bug #701 [DeepClone] Fix cloning DatePeriod on PHP 8.1 (@nicolas-grekas)
  • bug #707 [DeepClone] Fix code run by deepclone_to_array() reading the markers of hard references (@nicolas-grekas)
  • bug #706 [DeepClone] Fix detecting anonymous closures on PHP 8.1 (@nicolas-grekas)
  • bug #705 [DeepClone] Fix restoring the severity of ErrorException (@nicolas-grekas)
  • bug #704 [DeepClone] Throw the extension's errors for malformed deepclone_from_array() payloads (@nicolas-grekas)
  • bug #700 [DeepClone] Fix restoring objects held by Random\Randomizer and HashContext (@nicolas-grekas)
  • bug #708 [DeepClone] Reject more internal classes that keep their state out of their properties (@nicolas-grekas)
  • bug #703 [DeepClone] Reject and create classes like the extension in deepclone_from_array() and deepclone_hydrate() (@nicolas-grekas)
  • bug #699 [DeepClone] Fix detecting classes that refuse serialization (@nicolas-grekas)
  • bug #702 [DeepClone] Align payloads and warnings with serialize() and the extension (@nicolas-grekas)
  • bug #698 [DeepClone] Resolve the names returned by __sleep() like serialize() (@nicolas-grekas)
  • minor #711 [DeepClone] Fix tests with ext-deepclone 0.8.6 (@nicolas-grekas)
  • minor #697 [DeepClone] Speed up deepclone_to_array() on large object graphs (@nicolas-grekas)
  • bug #696 [DeepClone] Fix cloning objects whose property defaults hold closures (@nicolas-grekas)
  • bug #695 [Intl][Php85][Php86] Fix grapheme, Collator sorting, English list patterns and integer rounding in MessageFormatter (@IonBazan)
  • bug #694 [Php80][Php82][Php83] Fix PhpToken lines, ODBC quoting, ini_parse_quantity() and json_validate() edge cases (@IonBazan)
  • bug #692 [Mbstring] Fix ill-formed UTF-8 and array keys (@IonBazan)
  • bug #693 [Mbstring] Fix search functions that ignore the needle, offset or encoding (@IonBazan)
  • bug #691 [Php83] Fix str_increment() and str_decrement() edge cases (@IonBazan)
  • feature #690 [Intl/MessageFormatter] Add selectordinal support to the MessageFormatter polyfill (@IonBazan, @nicolas-grekas)
  • bug #689 Align mb_trim(), Normalizer, odbc_connection_string_should_quote() and the uuid constants with native (@IonBazan, @nicolas-grekas)
  • bug #688 [Uuid] Share the last timestamp through APCu along with the node (@nicolas-grekas)
  • feature #686 [Uuid] Add UUID v6, v7 and vendor types (@IonBazan, @nicolas-grekas)
  • bug #685 [Uuid] Align uuid_compare() and uuid_create() with the extension (@IonBazan, @nicolas-grekas)
  • bug #684 [Iconv][Intl/MessageFormatter] Fix iconv_substr(), iconv_strrpos() and MessageFormatter (@IonBazan, @nicolas-grekas)
  • bug #687 [DeepClone] Write hooked properties raw in deepclone_from_array() (@nicolas-grekas)
  • bug #674 [DeepClone] Preserve PHP references like unserialize(serialize()) does (@nicolas-grekas)
  • minor #680 [Util] Read the whole bootstrap chain in the test listener (@nicolas-grekas)
  • bug #672 [Php74][Mbstring] Reject oversized mb_str_split lengths (@thomas-chauchefoin-tob, @nicolas-grekas)
  • bug #671 [Intl-Idn] Validate each join control against its own context (@thomas-chauchefoin-tob)
  • bug #670 [Php83][Mbstring] Avoid excessive mb_str_pad allocations (@thomas-chauchefoin-tob, @nicolas-grekas)
  • bug #669 [Uuid] Require the DCE variant for time UUID extraction (@thomas-chauchefoin-tob)
  • bug #667 [Iconv] Fix //TRANSLIT without the Normalizer class (@nicolas-grekas)
  • bug #666 [Mbstring] Reject malformed UTF-8 in mb_ord (@thomas-chauchefoin-tob, @nicolas-grekas)
  • bug #675 [Iconv] Fix iconv_substr() with non-UTF-8 encodings (@nicolas-grekas)
  • minor #676 [Util] Keep polyfills enabled until the wrapper suite ends (@nicolas-grekas)
  • bug #677 [Mbstring] Add missing argument validation to mb_ord() and mb_chr() (@nicolas-grekas)
  • bug #678 [Intl-Idn] Reject xn-- labels that decode to surrogates or code points above U+10FFFF (@nicolas-grekas)
  • bug #679 [Mbstring] Fix endless loops in mb_convert_case() and mb_encode_numericentity() (@nicolas-grekas)
  • bug #682 [Mbstring] Reject code points above U+10FFFF in mb_check_encoding() (@nicolas-grekas)
  • minor #683 [Intl] Update the IDN data to Unicode 15.1 (@nicolas-grekas)
  • minor #665 Add a security vulnerability reporting policy (@thomas-chauchefoin-tob, @nicolas-grekas)
  • bug #663 [Php85][Intl] Fix script and language detection in locale_is_right_to_left() (@IonBazan, @nicolas-grekas)
  • bug #662 [Intl][Php84][Php85] Fix argument validation in grapheme_levenshtein() and grapheme_str_split() (@IonBazan, @nicolas-grekas)
  • bug #661 [Php86][Intl] Fix grapheme_strrev() (@IonBazan, @nicolas-grekas)
  • bug #660 [Php84] Fix bcmath number validation (@IonBazan)
  • bug #673 [DeepClone] Initialize lazy objects in deepclone_to_array() (@nicolas-grekas)
  • bug #659 Reduce memory usage of grapheme_levenshtein() (@thomas-chauchefoin-tob)
  • minor #657 [IoPoll] Improve the type annotations of the stubs (@nicolas-grekas)
  • minor #656 [IoPoll] Make wait() independent of the number of watchers (@nicolas-grekas)
  • bug #655 [IoPoll] Report EINTR as ERROR_INTERRUPTED like the native backends (@nicolas-grekas)
  • bug #654 [Uuid] Fix duplicate v1 UUIDs generated within the same microsecond (@nicolas-grekas)
  • bug #652 [IoPoll] Stop busy-waiting when readability matches no watched event (@nicolas-grekas)
  • minor #653 [IoPoll] Make Watcher::remove() and Watcher::modify*() O(1) (@nicolas-grekas)
  • bug #651 [Io-Poll] Accept extension-provided handles (@nicolas-grekas)
  • bug #649 [Grapheme] Match the intl extension on ill-formed UTF-8 (@nicolas-grekas)
v1.42.0

Changelog (https://github.com/symfony/polyfill/compare/v1.41.0...v1.42.0)

  • bug #648 [Intl-Idn] Don't Punycode-encode domains the intl extension would refuse (@nicolas-grekas)
  • bug #646 [Idn] Bound the Punycode decoder input length (@iliaal)
  • bug #645 [IoPoll] Take Time\Duration in Context::wait() (@nicolas-grekas)
  • feature #642 Add Polyfill for Time\Duration class (@nyamsprod)
  • minor #644 Align tests with PHP 8.6 changes to ext/tidy and ext/intl (@nicolas-grekas)
  • bug #643 [DeepClone] Hydrate mangled keys through the grouped path even when they resolve to the object's own scope (@nikophil)
v1.41.0

Changelog (https://github.com/symfony/polyfill/compare/v1.40.0...v1.41.0)

  • bug #641 [Grapheme] Reject out-of-range offsets in the grapheme_str[ri]?pos() family (@nicolas-grekas)
  • feature #612 [IoPoll] Polyfill the Io\Poll API (@nicolas-grekas)
  • bug #637 [Php83][Php85][Grapheme] Throw ValueError on PHP 7 for functions that never returned false (@nicolas-grekas)
  • minor #638 [Intl][Icu] Avoid pulling deprecated symfony/intl 5.4 on PHP < 8.1 (@nicolas-grekas)
  • bug #640 [Php74] Align mb_str_split() polyfill with Mbstring and native (@nicolas-grekas)
  • minor #639 Document the polyfill design principles (@nicolas-grekas)
v1.40.0

Changelog (https://github.com/symfony/polyfill/compare/v1.39.0...v1.40.0)

  • bug #635 [DeepClone] Suggest the extension when refusing a named callable, and decode its global-function references (@nicolas-grekas)
  • feature #634 [DeepClone] Gate closures over named callables behind an allow_named_closures option (@nicolas-grekas)
v1.39.0

Changelog (https://github.com/symfony/polyfill/compare/v1.38.2...v1.39.0)

  • feature #630 [DeepClone] Support closures declared in constant expressions (@nicolas-grekas)
  • bug #632 [DeepClone] Fix round-tripping short-lived Random\Randomizer instances on PHP 8.2 (@nicolas-grekas)
  • bug #631 [DeepClone] Reject from_array payloads that would build an uninitialized object (@nicolas-grekas)
v1.38.2

Changelog (https://github.com/symfony/polyfill/compare/v1.38.1...v1.38.2)

  • bug #629 [DeepClone] Fix round-tripping objects whose __serialize() nests another object (@nicolas-grekas)
  • bug #628 [DeepClone] Fix round-tripping and hydrating BcMath\Number (@nicolas-grekas)
  • bug #627 [DeepClone] Reject malformed deepclone_from_array() input without warnings (@nicolas-grekas)
  • bug #626 [DeepClone] Fix cloning objects with numeric property names (@nicolas-grekas)
  • bug #623 [Mbstring] Fix issues with mb_scrub() (@GPHemsley)
  • bug #622 [Mbstring][Php3] Fix issues with mb_str_pad() (@GPHemsley)
v1.38.1

Changelog (https://github.com/symfony/polyfill/compare/v1.38.0...v1.38.1)

  • security #cve-2026-46644 [Intl][Idn] Reject xn-- labels whose Punycode payload decodes to ASCII-only (@nicolas-grekas)
  • bug #619 [Mbstring][Php83][Php84] Isolate PHP 7 mb_* declarations into bootstrap72.php (@nicolas-grekas)
  • bug #617 Polyfill more cURL constants (@GPHemsley)
  • bug #618 fix: Correctly define MySQL constants (@mitelg)
  • bug #616 Fix grapheme_str_split() on PCRE 8 (@GPHemsley)
  • bug #615 Fix newline handling in Php74 implementation of mb_str_split() (@GPHemsley)
v1.38.0

Changelog (https://github.com/symfony/polyfill/compare/v1.37.0...v1.38.0)

  • bug #582 [Intl/MessageFormatter] Add missing parseMessage() method (@xabbuh)
  • bug #610 [Mbstring] Fall back to plain iconv when //IGNORE is unsupported (on musl) (@nicolas-grekas)
  • bug #609 [Intl/MessageFormatter] Validate the full pattern at configuration time (@nicolas-grekas)
  • feature #608 [Intl/Normalizer] Polyfill normalizer_get_raw_decomposition() (@nicolas-grekas)
  • bug #607 [Mbstring] Make mb_convert_encoding($s, $y, 'HTML-ENTITIES') match native output (@nicolas-grekas)
  • bug #603 [Mbstring][Php83][Php84] Accept null in mb_* polyfills (@nicolas-grekas)
  • bug #600 [Php84] Declare $persistent property in ReflectionConstant stub (@nicolas-grekas)
  • bug #599 [Php83] Fix mb_str_pad invalid encoding error reporting (@nicolas-grekas)
  • bug #604 [Grapheme] Return false from grapheme_strrev() on invalid UTF-8 (@nicolas-grekas)
  • bug #598 [Grapheme] Fix grapheme cluster splitting on PCRE < 10.44 (@nicolas-grekas)
  • bug #596 [Mbstring] Fix mb_strlen() for invalid UTF-8 input (@nicolas-grekas)
  • bug #595 [Php83] Fix str_increment() for numeric strings beyond PHP_INT_MAX (@nicolas-grekas)
  • bug #594 [Php83] Fix ldap_exop_sync polyfill on PHP < 8.3 (@nicolas-grekas)
  • bug #591 Fix mb_rtrim() missing unicode-awareness (@nicolas-grekas)
  • bug #590 PHP can be built without PDO::MYSQL_ATTR_SSL_VERIFY_SERVER_CERT (@alexpott)
  • bug #588 Update IntlDateFormatter::__construct() parameters (@Seb33300)
v1.37.0

Changelog (https://github.com/symfony/polyfill/compare/v1.36.0...v1.37.0)

  • feature #578 [RFC] Add grapheme_strrev function php 8.6 (@PhilDaiguille)
  • bug #580 Fix grapheme_levenshtein() registration in polyfill-php85 (@xabbuh)
  • bug #581 do not register the locale_is_right_to_left() function without the intl extension (@xabbuh)
  • bug #584 [DeepClone] Drop SPL "\0" special key from deepclone_hydrate() (@nicolas-grekas)
  • bug #577 [DeepClone] Cap IS_LONG objectMeta count at 1M (@nicolas-grekas)
  • feature #576 [DeepClone] Drop scoped mode — mangled-only is now the only shape (@nicolas-grekas)
  • feature #574 [DeepClone] Add DEEPCLONE_HYDRATE_PRESERVE_REFS flag + hot-path perf (@nicolas-grekas)
v1.36.0

Changelog (https://github.com/symfony/polyfill/compare/v1.35.0...v1.36.0)

  • feature #573 [DeepClone] Mirror ext v0.3.0: $flags parameter + forgiving-hydrate behaviors (@nicolas-grekas)
  • bug #572 [DeepClone] Fix PHP warning for __sleep()-listed uninitialized declared properties (@nicolas-grekas)
v1.35.0

Changelog (https://github.com/symfony/polyfill/compare/v1.34.0...v1.35.0)

  • bug #571 [DeepClone] Fix cache poisoning causing spurious NotInstantiableException (@nicolas-grekas)
  • feature #569 [PHP 8.6] Add SortDirection enum for PHP 8.1+ (@Ayesh)
  • feature #566 [PHP 8.6] Add ARRAY_FILTER_USE_VALUE constant (@Ayesh)
  • feature #568 [DeepClone] Add deepclone_hydrate() polyfill (@nicolas-grekas)
v1.34.0

Changelog (https://github.com/symfony/polyfill/compare/v1.33.0...v1.34.0)

  • bug #565 Fix bcdiv handling of DivisionByZeroError (@nicolas-grekas)
  • bug #501 mbstring polyfills must not raise value errors in PHP 7 (@derrabus)
  • feature #527 [8.5] Add locale_is_right_to_left (@alexander-schranz)
  • feature #532 [Intl] Add PHP 8.5 IntlListFormatter to ICU polyfill (@Ayesh)
  • feature #549 Add polyfill for PDO driver specific subclasses (@nicolas-grekas, @jnoordsij)
  • feature #558 Add the grapheme_levenshtein polyfill (Sudam Ranasinghe)
  • feature #557 [PHP 8.5] Add new \Filter\FilterException and Filter\FilterFailedException (@Ayesh)
  • feature #560 Add fallback implementation for Collator::compare() (@aymericcucherousset)
  • bug #556 Fix PHP 7.2 compatibility for PHP 8.4 polyfill (@Seldaek)
  • feature #561 Add polyfill for symfony/php-ext-deepclone (@nicolas-grekas, @GromNaN)
  • feature #554 [8.6] Add clamp function (@kylekatarnls)
  • feature #546 [8.4] implement bcround, bcceil and bcfloor (@Dean151)
  • bug #504 Ctype: Give the correct deprecations for PHP 8.1+ (@BackEndTea)
  • feature #541 [8.5] Add polyfill for DelayedTargetValidation (@DanielEScherzer)
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.
robertmarney/lara-hierarchial-collections
simonschaufi/rule-doc-generator
emissaoja/emissaoja
blackbricksoftware/gravityforms-civicrm-form-processor
al-rahabi/fancy-crud
jinas/dhivatar-component
mltstephane/laravel-quality
bernskiold/laravel-talentlms
bernskioldmedia/laravel-form-architect
youbar/easy-crud
c-point-labs/laravel-hostyourai
dbravoan/dbcms-admin-theme-dbcms
dbravoan/dbcms-theme-db-cyber
dbravoan/dbcms-blocks-basic
dbravoan/dbcms-module-content-audit
dbravoan/dbcms-module-ai-assistant
paygate-to/paygate-php
padosoft/askmydocs-connector-base
defstudio/supercharged-carbon
bernskioldmedia/laravel-matomo