Symfony 8.0.15 has just been released.
Read the Symfony upgrade guide to learn more about upgrading Symfony and use the SymfonyInsight upgrade reports to detect the code you will need to change in your project.
Tip
Want to be notified whenever a new Symfony release is published? Or when a version is not maintained anymore? Or only when a security issue is fixed? Consider subscribing to the Symfony Roadmap Notifications.
Changelog Since Symfony 8.0.14
- bug #65029 [JsonPath] Add limits for filter expression length and depth in JsonCrawler (@alexandre-daubois)
- bug #65028 [HttpClient] Fail when an https proxy is configured but libcurl cannot use it (@nicolas-grekas)
- bug #65026 [JsonStreamer] Drop the unbounded process-global key cache in Splitter (@nicolas-grekas)
- bug #65025 [Serializer] Check the denormalized class is a Mime part in MimeMessageNormalizer (@nicolas-grekas)
- bug #65024 [SecurityBundle] Always constrain redirect targets to the current host, even without sessions (@nicolas-grekas)
- bug #65023 [HttpFoundation] Validate the characters allowed in a cookie path and domain (@nicolas-grekas)
- bug #65022 [HttpFoundation] Don't crash on a non-string signature in UriSigner (@nicolas-grekas)
- bug #65020 [HttpFoundation] Fix newline handling in server event fields (@nicolas-grekas)
- bug #65019 [HttpClient] Strip Proxy-Authorization on cross-authority redirects (@nicolas-grekas)
- bug #65011 [Cache] Add support for relay 0.40 (@nicolas-grekas)
- bug #65005 [JsonPath] Reject non-singular queries in filter comparisons (@nicolas-grekas)
- bug #65002 [JsonPath] Fix evaluating filter expressions wrapped in several parentheses (@nicolas-grekas)
- bug #65001 [HttpFoundation] Fix retry field being dropped across server event streams (@nicolas-grekas)
- bug #65009 [HttpClient] Fix the escaping of the generated curl command (@nicolas-grekas)
- bug #65004 [HttpClient] Don't send the original Host header on cross-authority redirects (@nicolas-grekas)
- minor #65000 Review Italian validator translations (@JJordan0C)
- bug #64995 [Serializer] Prefer serialized name over raw property key (@ousamabenyounes)
- bug #64992 [String] Consistently return null for out-of-range offsets (@javiereguiluz)
- bug #64990 [PropertyInfo] Do not trigger legacy Type deprecation on getType() (@saifulferoz)
- minor #64981 [Form][Validator] Review Turkish (tr) translations (@mmustafaAydogan)
- bug #64983 [ObjectMapper] Fix nested map() reconstructing an existing target (@takashiraki)
- bug #64985 [Mailer] Fix fatal TypeError when sending a RawMessage via an API transport (@Baylox)
- bug #64975 [SecurityBundle] Let the LDAP and non-LDAP variants of an authenticator share a firewall (@nicolas-grekas)
- bug #64662 [Console] Decorate stdout and stderr independently when a formatter is injected (@jprivet-dev)
- bug #64697 [Serializer] Keep the collection value type for iterable constructor parameters (@misaert)
- bug #64917 [Messenger] Do not wrap the Doctrine transport keepalive in a transaction (@bendavies)
- bug #64820 [Mailer][Messenger] Wrap AsyncAws exceptions into TransportException in the AmazonSqs and SES transports (@voodooism, @nicolas-grekas)
- bug #64768 [Bridge][Monolog] Do not reset in ConsoleCommandProcessor (@lyrixx)
- bug #64971 [Dotenv] Don't parse external env var values when resolving .env references (@nicolas-grekas)
- bug #64972 [AssetMapper] Reset the mapped asset factory between requests (@pokki-deploy)
- bug #64966 [AssetMapper] Avoid re-expanding bare importmap entries (@pokki-deploy)
- bug #64965 [Serializer] Do not read subclass discriminator attributes from base objects (@pokki-deploy)
- bug #64957 [Cache] Fix "Class Relay\Relay not found" for RedisCluster/RedisArray with tcp_keepalive (@rjmackay)
- minor #64950 [Form][Validator] Updated danish translations (@jekuaitk)
- bug #64862 [ObjectMapper] Resolve a nested reverse-mapped property by the type of its destination (@Amoifr)
- bug #64724 [Serializer] Keep FILTER_BOOL working when ENABLE_TYPE_CONVERSION is enabled (@Amoifr)
- bug #64710 [Mailer] Reject control characters in SmtpTransport::setLocalDomain() (@iliaal)
- bug #64945 [HttpFoundation] Throw when IpUtils::isPrivateIp() receives a non-canonical IP address (@Amoifr)
- bug #64670 [Config] Accept env placeholders for scalar alternatives in generated array-shapes (@yvh)
- bug #64938 [Messenger] Do not reject unknown types when no message requires signing (@pokki-deploy)
- bug #64935 [PropertyInfo] Ignore mutators with several required parameters (@pokki-deploy)
- bug #64937 [Validator] Allow Traverse to be inherited (@MatTheCat)
- minor #64940 [Validator] Fix missing Tagalog (tl) translations (@QuantumBreakz)
- minor #64943 [Filesystem] Handle PHP 8.6 removing function arguments in error messages (@MatTheCat)
- bug #64654 [Validator] Merge target's own constraints when using #[ExtendsValidationFor] (@pokki-deploy)
- bug #64708 [DependencyInjection] Fix lazy + factory service with a leading-backslash class on PHP 8.4 (@Amoifr)
- minor #64740 [Serializer] Skip XmlEncoderTest::testEncodeException() when using libxml ≥ 2.13 (@MatTheCat)
- bug #64751 [FrameworkBundle] Make WebTestCase enable web mode by default (@MatTheCat)
- bug #64770 [ObjectMapper] Fix explicit #[Map(target:)] being overwritten by a same-name source property (@danielpilot)
- bug #64801 [Validator] Allow null groups in ConstraintValidatorTestCase (@sjh9714)
- bug #64828 [DependencyInjection] Add supported literal option not_found for imports.[*].ignore_errors in services.schema and AppReference (@kaznovac)
- bug #64831 [FrameworkBundle] Fix valkey cache adapters ignoring default_valkey_provider (@lazerg)
- minor #64845 [Validator] Add return type annotations to Validation::createCallable() (@rela589n)
- bug #64848 [ObjectMapper] Fix per-property #[Map(source:)] being ignored when the target property name also exists on the source (@Amoifr)
- bug #64934 [HttpClient] Do not stream empty PSR-18 request bodies (@pokki-deploy)
- bug #64931 [TwigBridge] prevent implicit string casts for translatable message objects (@xabbuh)
- bug #64905 [PropertyInfo] Fix union with mixed handling in PhpStanTypeHelper (@Amoifr)
- bug #64928 [Messenger] Strip trace from nested exceptions in ErrorDetailsStamp (@pkranjcecx)
- bug #64933 [Messenger] Fix ack/reject failing when the Redis stream entry is already deleted (@pokki-deploy)
- bug #64707 [AssetMapper] Fix crash when a remote package depends on a locally-mapped importmap entry (@Amoifr)
- bug #64655 [EventDispatcher] Fix regression in TraceableEventDispatcher invocation counting (@jnahmias)
- bug #64727 [Routing] Detect circular references in object route parameters (@Amoifr)
- bug #64741 [Mime] Fix dropped whitespace between multiple encoded words (@eyupcanakman)
- minor #64816 Allow Twig 4 (@xabbuh)
- bug #64843 [Console] Fix table borders around colspan cells and header-less tables (@wazum)
- bug #64930 Handle PHP 8.6 removing function arguments in error messages (@MatTheCat)
- bug #64847 [DoctrineBridge] Filter non-.php files in ProxyCacheWarmer::warmUp() to avoid CacheWarmerAggregate exception (@semx)
- bug #64822 [Config] Escape "*/" in generated array-shape comments (@lazerg)
- bug #64857 [Config] Escape comment-closing sequence in generated config builders (@sadiqk2)
- bug #64886 [Console] Fix two ValueError crashes on multibyte / multi-column widths (@sadiqk2)
- bug #64887 [Cache] Initialize PhpArrayAdapter before classifying keys in deleteItems() (@sadiqk2)
- bug #64897 [Messenger][AmazonSqs] Fix fatal on shutdown when the in-flight receive cannot be resumed (@vadimgodev)
- bug #64904 [ErrorHandler] Fix fatal error without args triggering an error when calling getTraceFromString (@timacdonald)
- bug #64914 [EventDispatcher] Clear wrappedListeners in TraceableEventDispatcher::reset() (@guillaumedelre)
- bug #64914 [EventDispatcher] Clear wrappedListeners in TraceableEventDispatcher::reset() (@guillaumedelre)
- bug #64672 [Yaml] Fix line folding after trailing backslashes in quoted strings (@eyupcanakman)
- bug #64668 [DependencyInjection] Fix env var reported as never used for a removed autowired service (@eyupcanakman)
- minor #64882 [Form][Security][Validator] Finalize Urdu (ur) translations (@sadiqk2)
- bug #64915 [Yaml] Fix parsing and dumping of NaN (@semx)
- bug #64918 [String] Fix AsciiSlugger::getLocale() TypeError with no locale set (@eyupcanakman)
- bug #64920 [Validator] add missing inherited options to Video constraint (@xabbuh)
- minor #64900 Fix deprecation info about Response::sendHeaders in UPDGRADE-7.4.md (@pableu)
- bug #64891 [TwigBridge] ensure that a label with value "0" is rendered (@xabbuh)
- bug #64889 [HttpClient] Replace the native "dechunk" stream filter with a pure PHP implementation (@nicolas-grekas)
- bug #64898 [Cache] Remove obsolete return instruction from classes constructors (@cedric-anne)
- bug #64895 [Dotenv] Allow multiple underscores at start (@Sajito)
- bug #64884 Fix/webprofiler mailer macros 6.4 (@HecFranco)
- bug #64877 [Validator] Reject misplaced "X" character in ISBN-10 validation (@semx)
- bug #64856 [Console] Fall back to "stty sane" when restoring the captured terminal state fails (@lyrixx)
- minor #64736 i18n(fr): improve French validator translations (symfony#64680) (@Boomwerk)
- bug #64649 [Serializer] Fix support check for nested array items (@nicolas-grekas)
- minor #64821 [Form][Security][Validator] Review Bosnian (bs) translations (@pkranjcecx)
- minor #64854 [Validator] Add missing French (fr) translation for cron expression (@sadiqk2)
- bug #64827 jitter shouldn't make scheduler miss runs (@mrossard)
- minor #64834 [Validator] Review Russian (ru) translation (@Fuck4ik)
- bug #64849 [Console] Fix SymfonyStyle questions when using output sections (@javiereguiluz)
- minor #64809 [Validator] fix Basque IBAN placeholder casing in BIC mismatch message (@munzzyy)
- minor #64808 [Validator] fix Turkish placeholder name in divisible-by message (@munzzyy)
- minor #64807 [Validator] fix Galician placeholder name in collection divisible-by message (@munzzyy)
- minor #64806 [Validator] fix Azerbaijani placeholder name in divisible-by message (@munzzyy)
- minor #64805 [Validator] fix Traditional Chinese min/max placeholder swap in image messages (@munzzyy)
- minor #64804 [Validator] fix Finnish height placeholder in image constraint message (@munzzyy)
- minor #64803 [Validator] fix Welsh height placeholder in image constraint messages (@munzzyy)
- minor #64810 [Validator] fix Arabic ratio placeholder in image ratio-too-small message (@munzzyy)
- minor #64811 [Security][Validator] fix broken Armenian placeholders (@munzzyy)
- bug #64815 [Cache] Remove always-true method_exists() check in FilesystemCommonTrait::__destruct() (@munzzyy)
- bug #64794 [PropertyInfo] Prevent PhpDocTypeHelper to wrongly assume keys type (@MatTheCat)
- minor #64796 [Validator] fix Finnish translation for BIC/IBAN mismatch message (@munzzyy)
- minor #64793 [Validator] Review Arabic translation (@ayyoub-afwallah)
- minor #64792 [Form][Validator] Review Brazilian Portuguese translations (@joao-ramajo)
- bug #64783 Add additional IP ranges for RFC2544 and RFC5180 (@thePanz)
- bug #64789 [HttpFoundation] Add RFC5737 and RFC3849 to IpUtils::PRIVATE_SUBNETS (@thePanz)
- minor #64784 [Form][Validator] Review Uzbek (uz) translations (@lazerg)
- bug #64739 [PropertyInfo] Prevent PhpDocTypeHelper to wrongly assume keys type (@MatTheCat)
- minor #64713 [Translation][Validator] Update Chinese (zh-TW) translations (@Link1515)
- minor #64737 [Form][Security][Validator] Improve Croatian translations (@HypeMC)
- minor #64755 [Validator] Review Albanian translations (@gazi04)
- bug #64752 [Yaml] Fix parsing of integers with a leading plus sign (@eyupcanakman)
- minor #64744 [Contracts] Set splitsh tag_skip strategy to no_commit (@fabpot)
- minor #64742 [Form][Validator] review German translations (@xabbuh)
- bug #64701 Fix Absolute URL generation by ignore tel: mailto: and other app links (@tomm1996, @alexander-schranz)
- bug #64734 [Filesystem] Trim trailing whitespace from the tempnam() prefix (@Amoifr)
- bug #64732 [String] Fix splice() on multibyte strings (@eyupcanakman)
- minor #64733 [Validator] Review Croatian translations (@HypeMC)
- data #64729 Release v7.4.14
- data #64728 Release v6.4.42