8000 fix/resolve event listener by nikophil · Pull Request #5 · nikophil/symfony · GitHub
[go: up one dir, main page]

Skip to content

fix/resolve event listener #5

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
wants to merge 464 commits into from
Closed

Conversation

nikophil
Copy link
Owner
  • [Notifier] Add SMS options to MessageMedia notifier
  • [Console] fix clear of section with question
  • Added condition to always return the real Authenticator
  • [Messenger] Respect isRetryable decision of the retry strategy when deciding if failed message should be re-delivered
  • [Serializer] Replace the MissingConstructorArgumentsException class with MissingConstructorArgumentException
  • [Security] Return 403 instead of 500 when no firewall is defined
  • add Sender to the list of bypassed headers
  • Fix some typos
  • fix typo
  • Replace deprecated/removed way to configure enabled_locales
  • [Config] Fix phpdoc nullable
  • [Dotenv] Fix phpdoc Dotenv
  • [Cache] Fix Redis proxies
  • stop using assertObjectHasAttribute()/assertObjectHasNotAttribute()
  • [Lock] Fix some typos in MongoDbStore
  • [Tests] Migrate data providers to static ones
  • [Serializer] Fix CsvEncoder decode on empty data
  • [TwigBridge] Improve form_errors of bootstrap5 form theme
  • [Intl] Generate all emoji short name returned by slack api
  • [Intl] fix script to update emoji list + build the list
  • [HttpKernel] Fix setting the session on the main request when it's started by a subrequest
  • [Form] Check for RepeatedType child in PasswordHasherListener
  • [PHPUnit 10] Use TestCase suffix for abstract tests in /Tests/
  • minor [PHPUnit 10] Use TestCase suffix for abstract tests in /Tests/ symfony/symfony#49253 [PHPUnit 10] Use TestCase suffix for abstract tests in /Tests/ (OskarStark)
  • Fix merge
  • Fix merge
  • Fix merge
  • Remove unused data provider
  • [VarExporter] Fix lazy-proxying readonly classes on PHP 8.3
  • [Cache] Sync RelayProxy with latest lazy-proxy changes
  • Fix: Split and clean up tests
  • [FrameworkBundle] Fix symfony/dom-crawler conflict
  • [Semaphore] Fix test
  • Remove some dead code
  • [Tests] Migrate tests to static data providers
  • [HttpClient] Fix data collector
  • Revert "[HttpClient] Add support for "friendsofphp/well-known-implementations""
  • Use xxh128 instead of md5
  • Fix Psalm job
  • [Notifier] Fix notifier profiler when transport name is null
  • [HttpClient] Fix over-encoding of URL parts to match browser's behavior
  • [Notifier][WebProfilerBundle] Ignore messages whose getNotification returns null
  • [Validator] LuhnValidator code optimization
  • [Messenger] Allow passing a string instead of an array in TransportNamesStamp
  • [FrameworkBundle] Fix checkboxes check assertions
  • [Notifier] Introduce FromNotificationInterface
  • [Tests] Fix static calls and Mock var annotation
  • Add warning about Symfony 5.2 changing pcntl_async_signals
  • Smsapi - Make "from" optional
  • [FrameworkBundle] Improve error message in MicroKernelTrait when using deprecated configureRoutes(RouteCollectionBuilder) with symfony/routing >= 6.0
  • feat(property-access): allow escaping in PropertyPath
  • Fix merge
  • Fix merge
  • [DI] keep proxy tag on original definition when decorating
  • fix tests
  • fix test
  • fix test
  • fix test
  • Fix test
  • Fix test
  • [Filesystem] Remove always true condition
  • [HtmlSanitizer] Remove experimental status
  • [ErrorHandler] Do not patch return statements in closures
  • Add missing PHPdoc return types
  • Fix some phpdoc
  • Add PHP types to private methods and functions
  • [Cache] Only validate dbindex parameter when applicable
  • Add void return types
  • [Tests] Migrate tests to static data providers
  • Fix fix
  • [GHA] Improve workflow titles
  • [GHA] Improve workflow titles
  • Speed up Psalm tests
  • Migrate to static data providers using rector/rector
  • Fix merge
  • [Validator] Add a NoSuspiciousCharacters constraint to validate a string is not a spoof attempt
  • Fix PHPDoc (wrong order)
  • [Yaml] Fix parsing sub-second dates on x86
  • [gha] Fix high-deps to run with Symfony 6+
  • replace usages of the deprecated PHPUnit getMockClass() method
  • Fix tests
  • use proper methods to assert exception messages contain certain strings
  • [Security] fix compat with security-core v6
  • [DependencyInjection] Add doc for RUNTIME_EXCEPTION_ON_INVALID_REFERENCE behavior
  • [Notifier] Add missing use statement
  • Fix PHPUnit 9.6 deprecations
  • [Notifier] Make TransportTestCase data providers static
  • add missing variable
  • [Config] cleanup exception message on missing class
  • [Cache] fix trying to load Memcached before checking we can
  • [Notifier] fix tests
  • [HttpFoundation] Deprecate passing invalid URI to Request::create
  • Use PHPUnit 9.6 to run Symfony's test suite
  • [Twig] Twig templates loaded with TemplateCacheWarmer are no longer returned to avoid them being preloaded in OPCache as it may load a lot of files in memory without improving than much performance.
  • [TwigBridge] Fix raw content rendering in HTML notification emails
  • [Notifier] Replace tests dummy instances by already in place mocks
  • Fix PHPUnit deprecation
  • Fix merge
  • Fix test provider
  • Add missing return types to interfaces
  • Fix tests
  • CS fix
  • Fix tests
  • Fix expected-missing-return-types
  • [Validator] Add missing return types to ExecutionContextInterface
  • Fix expected missing return types
  • remove not needed PHP version switch
  • [Contracts] Add missing return types
  • Bump absolute lowest dep to 4.4
  • [DependencyInjection] Fix autowire attribute with nullable parameters
  • [Form] Add missing return types to interfaces
  • Fix Request locale property doc types
  • use TestCase suffix for abstract tests in Tests directories
  • [BC Break] Make data providers for abstract test cases static
  • [Translation][Mailer] Convert $this calls to static ones in data providers
  • [WebProfilerBundle] Tweak Mailer panel rendering
  • improve deprecation message
  • do not drop embed label classes
  • [Messenger][Cache] fixed CallbackInterface support in async expiration handler
  • re-add missing use statement
  • fix tests
  • remove invalid test
  • fix some version constraints
  • [WebProfilerBundle] Render original (not encoded) email headers
  • [Messenger] Allow to define batch size when using BatchHandlerTrait with getBatchSize()
  • Fix phpdocs in HttpClient, HttpFoundation, HttpKernel, Intl components
  • fix tests
  • Update composer.json
  • feat(di): add AsAlias attribute
  • [Workflow] remove new lines from workflow metadata
  • [Clock] fix url in README.md
  • Remove unused local variable
  • [Mailer][Translation][Notifier] Remove some static occurrences that may cause unstable tests
  • minor [Mailer][Translation] Remove some static occurrences that may cause unstable tests symfony/symfony#49431 [Mailer][Translation] Remove some static occurrences that may cause unstable tests (alexandre-daubois)
  • minor [Mailer][Translation] Remove some static occurrences that may cause unstable tests symfony/symfony#49431 [Mailer][Translation] Remove some static occurrences that may cause unstable tests (alexandre-daubois)
  • [TwigBundle] add alias deprecation for Twig_Environment
  • [Contracts] Fix setting $container before calling parent::setContainer in ServiceSubscriberTrait
  • Update Redis version to 6.2.8
  • [Form] Skip password hashing on empty password
  • [DependencyInjection] Allow trimming service parameters value in XML configuration files
  • [DependencyInjection] Improve dumping closure of service closure
  • [MonologBridge] FirePHPHandler::onKernelResponse throws P 8000 HP 8.1 deprecation when no user agent is set
  • [SecurityBundle] Fix Security::login() on specific firewall
  • [DI] allow extending Autowire attribute
  • [Mailer] Add option to enable Sandbox via dsn option sandbox=true
  • [HttpKernel] Add skip_response_headers to the HttpCache options
  • [Validator] Implement countUnit option for Length constraint
  • Print value type on dump error
  • Only dump array keys when value is not a list
  • Remove static from closures
  • Use short arrow closure for EmptyIterator
  • Make some functions static again
  • Only include $containerRef in compiled container when needed
  • [FrameworkBundle][HttpKernel] Configure ErrorHandler on boot
  • [Translation] Fix merge
  • Fix Integration tests skipped with Redis cluster
  • Fix merge
  • Fix the rendering of query explanation with Postgresql
  • Fix homepage
  • [Mailer] Reflect sandbox state in MailjetApiTransport::__toString()
  • Remove unused local variable
  • Fix phpdocs in components
  • [Security] Add logout configuration for Clear-Site-Data header
  • [String] Use same alphabet for ByteString::fromRandom tests
  • Allow disabling dumping of container to XML
  • [FrameworkBundle] Add framework.http_cache.skip_response_headers option
  • Update Infobip API transport to use the API V3
  • [Validator] Add the option filenameMaxLength to the File constraint
  • [FrameworkBundle][HttpKernel] Display warmers duration on debug verbosity for cache:clear command
  • [Validator] Sync IBAN formats with Swift IBAN registry
  • do not drop embed label classes
  • [Validator] Fix translation of AtLeastOneOf constraint message
  • Fix merge
  • [String] Remove unused private constant
  • [FrameworkBundle] Fix denyAccessUnlessGranted for mixed attributes
  • [DependencyInjection] Add support for Exclude attribute
  • Fix tests
  • [Mailer] Add MailerSend bridge
  • [Mailer] Fix composer.json
  • [VarDumper] Fix error when reflected class has default Enum parameter in constructor
  • [DependencyInjection] Exclude current id from non-existent references alternatives
  • [Notifier] Add Pushover bridge
  • [Translation] Handle the translation of empty strings
  • Add cache contracts template annotations
  • [TwigBridge] Allow floats in html5 input type number field
  • Remove unused private methods
  • [HttpClient] Add UriTemplateHttpClient
  • fix style of label containing new lines in PUML dump
  • [Security] Add remember me option for JSON logins
  • [Security] Allow passing remember-me parameters via RememberMeBadge
  • Fix tests
  • Fix tests
  • [FrameworkBundle][HttpClient] Refactor http_client decoration strategy
  • [DependencyInjection] Optimize out "current()" when it's used as service factory
  • Fix merge
  • [Console] Fix fatal error when accessing Application::signalRegistry without pcntl
  • [Console] Fix ApplicationTest::testSetSignalsToDispatchEvent() when ran alone
  • [Security] Migrate the session on login only when the user changes
  • Removed @internal tag on TraceableAuthenticator::getAuthenticator()
  • [TwigBridge] Fix TwigDataCollector::getTime() return type
  • [Messenger] Fix TransportNamesStamp deserialization
  • Update CHANGELOG for 5.4.21
  • Update CONTRIBUTORS for 5.4.21
  • Update VERSION for 5.4.21
  • Bump Symfony version to 5.4.22
  • Update CHANGELOG for 6.2.7
  • Update VERSION for 6.2.7
  • Bump Symfony version to 6.2.8
  • Fix typo
  • Fix typo
  • [DependencyInjection] Fix dumping array of enums parameters
  • [HttpClient] Fix encoding "+" in URLs
  • Avoid leading .. for temporary files from Filesystem recursive remove
  • [Console] Add support for managing exit code while handling signals
  • [Serializer] add a context to allow invalid values in BackedEnumNormalizer
  • [TwigBridge] Fix flagged malicious url
  • [HttpKernel] Introduce pinnable value resolvers with #[ValueResolver] and #[AsPinnedValueResolver]
  • [DoctrineBridge] deprecate doctrine schema subscribers in favor of listeners
  • [HttpFoundation][HttpKernel] Add missing void PHPdoc return types
  • [DomCrawler] Give choice of used parser
  • [VarDumper] Add a bit of test coverage
  • [Validator] Add the excluded option to the Cascade constraint
  • [Translation] Decouple TranslatorPathsPass from "debug." convention
  • Fix tests
  • [HttpClient] Encode "," in query strings
  • [Tests] Replace setMethods() by onlyMethods() and addMethods()
  • Wrap use of \Locale in a class_exists test
  • [DependencyInjection] Keep track of decorated ids
  • [GHA] use stubs instead of extensions for psalm job
  • [Security] remove deprecated conditions in supports and authenticate methods from AccessListener class
  • [Seurity] Minor code cleanup in SecurityExtension
  • [DependencyInjection] Add support for autowiring services as closures using attributes
  • [HttpKernel] Renamed "pinned" to "targeted" for value resolvers
  • [DependencyInjection] Deprecate #[MapDecorated] in favor of #[AutowireDecorated]
  • [Messenger] make StopWorkerOnSignalsListener listen by default on SIGTERM and SIGINT
  • [Dotenv] Improve Dotenv::usePutenv phpdoc
  • [DependencyInjection] Add tests for #[TaggedIterator] & #[TaggedLocator] on controller arguments
  • Fix support binary values in parameters.
  • [Tests] Remove occurrences of withConsecutive()
  • [Mailer] STDOUT blocks infinitely under Windows when STDERR is filled
  • [Messenger] Fix evaluate() calls in WorkerTest
  • [Security] Add missing void PHPdoc return types
  • Change limit argument from string to integer.
  • [Serializer] Add methods getSupportedTypes to allow better performance
  • [Serializer] Add wildcard support to getSupportedTypes()
  • [DependencyInjection] deprecate the @required annotation
  • Add missing deprecation comment
  • [Tests] Remove withConsecutive() calls from tests
  • [Lock] fix: add lock schema listener test + fix typo
  • [Tests] Remove withConsecutive() calls from tests
  • Fix test
  • Fix test
  • [DomCrawler] Improve html5Parser tests
  • [HttpFoundation] Add support for the 103 status code (Early Hints) and other 1XX statuses
  • [VarDumper] Fixed dumping of CutStub
  • [FrameworkBundle] Rename limiter’s strategy to policy in XSD
  • [Config] Improve performance of GlobResource
  • [Form] Improve exception for unsubmitted form
  • [ErrorHander] Display exception properties in the HTML error page
  • [String] Correct inflection of 'codes' and 'names'
  • Fix some Composer keywords
  • Fix some Composer keywords
  • Fix some Composer keywords
  • Fix some Composer keywords
  • [FrameworkBundle] Workflow - Fix LogicException about a wrong configuration of "enabled" node
  • [DependencyInjection] Generalize and simplify parsing of autowiring attributes
  • [DependencyInjection] Use weak references in ContainerBuilder
  • [Webhook][RemoteEvent] Add the components
  • [Validator] Add PHPDoc void return types
  • Fix DI logic when mailer is available but webhook is not
  • Add the Scheduler component
  • [Scheduler] Rework the component
  • [Validator] Update BIC validator IBAN mappings
  • [DependencyInjection] Add support for generating lazy closures
  • [FrameworkBundle] Add scoped httplug clients and deprecate httplugs use like psr18 client
  • [ErrorHandler] Fixed tests
  • add translations for the filename max length validator option
  • explicitly set the HTTP method override option to false
  • [Scheduler] Fix some minor bugs
  • [HttpFoundation] Add ParameterBag::getString() and deprecate accepting invalid values
  • [Scheduler] Remove unused variable in AddScheduleMessengerPass
  • [Notifier] Add "retry" and "expire" options to Pushover bridge
  • Stop stopwatch events in case of exception
  • fix: GetSetMethodNormalizer::supportss should not check ignored methods
  • [WebProfilerBundle] replace helper with _self in serializer.html.twig
  • [HttpClient] Encode and decode curly brackets {}
  • [Form][ChoiceType] Add placeholder_attr field option
  • skip test using attributes on PHP 7
  • re-allow phpdocumentor/type-resolver 1.7
  • [Messenger] Add support for the DelayStamp in InMemoryTransport
  • [Scheduler] Add a simple Scheduler class for when the component is used standalone
  • [FrameworkBundle] Fix registration of the Scheduler component
  • [Scheduler] Fix usage without a Lock
  • [WebLink] Add relations defined in RFC 8631
  • [Messenger] Add a way to redispatch a message
  • fix tests
  • [Scheduler] Rename argument name for more consistency
  • [Messenger] Add Clock support in Worker
  • [DependencyInjection] Add support for #[Autowire(lazy: true)]
  • [DI] minor fix
  • [Webhook] Add readonly modifier where this possible
  • [RemoteEvent] Add readonly modifier where this possible
  • [Scheduler] Add DateIntervalTrigger and DatePeriodTrigger
  • [Security] Add argument $exceptionCode to #[IsGranted]
  • [FrameworkBundle] Make StopWorkerOnSignalsListener configurable via messenger's config
  • [Serializer] Allow filtering "object" when using "getSupportedTypes()"
  • [FrameworkBundle] Fix wiring session.handler when handler_id is null
  • [ErrorHandler] Rewrite logic to dump exception properties and fix serializing FlattenException
  • Fix merge
  • [CssSelector] Add suport for :scope
  • fix tests
  • Fix tests
  • [HttpFoundation] Add IpUtils::isPrivateIp
  • [Serializer] Add withSaveOptions to XmlEncoderContextBuilder
  • Use file system completion for redirect operators
  • Replace "use-by-ref" by static vars when possible in closures
  • [HttpFoundation] Use separate caches for IpUtils checkIp4 and checkIp6
  • [Scheduler] Fix PHPUnit deprecation on abstract test cases naming
  • [Scheduler] Fix unit tests
  • Improve security factory signatures
  • [HttpClient] Add hint about timeout and max_duration options
  • fix(translation): Improve performance of debug and extract command for big code base
  • [HttpClient] Fix not calling the on progress callback when canceling a MockResponse
  • [Messenger] Fix timezone in appveyor tests
  • [Scheduler] Make some properties readonly
  • [Notifier] Add bridge documentation
  • [Mailer] Update default Mailgun port
  • [FrameworkBundle] Add support to easily clear all cache pools
  • [VarDumper] Disable links for IntelliJ platform
  • [FrameworkBundle] Improve documentation about translation:extract --sort option
  • add debug:scheduler command
  • [Scheduler] Tweak debug:scheduler command output
  • update documentation for telegram bridge notifier
  • remove scheduler debug command definition if the component is not installed
  • [Validator] New PasswordStrength constraint
  • [Console][DoctrineBridge][PhpUnitBridge] Remove backticks from exception messages
  • TranslatorBag::diff now iterates over catalogue domains instead of operation domains
  • [Form] Use static closures when possible
  • [FrameworkBundle] Add missing monolog channel tag for messenger services
  • [DependencyInjection] Add support for #[Autowire(lazy: class-string)]
  • [DependencyInjection] Make it possible to cast callables into single-method interfaces
  • [DependencyInjection] Add container.excluded tag on classes autodiscovered but excluded
  • [Cache] Fix storing binary keys when using pgsql
  • [FrameworkBundle] Fix services usages output for text descriptor
  • [DependencyInjection] Add constructor option to services declaration and to #[Autoconfigure]
  • [Console] Add missing ZSH mention in DumpCompletionCommand help
  • [Cache] Fix DBAL deprecations and stop using NUL chars in tags prefix
  • [VarDumper] Add Caster::PATTERN_PRIVATE to help builing key
  • [Form] fix missing static closure
  • [HttpClient] Add ServerSentEvent::getArrayData() to get the SSE's data decoded as an array directly
  • [Scheduler] debug:schedule refinements
  • [Notifier] Add SimpleTextin bridge
  • [Cache] Removing null coalescing assignment operator on 5.4
  • [DependencyInjection] Filter "container.excluded" services when using findTaggedServiceIds()
  • fix merge
  • [VarDumper] Add a caster for the FlattenException
  • [FrameworkBundle] Fix auto-discovering validator constraints
  • [DependencyInjection] Fix setting the class of auto-discovery services
  • Remove bjeavons/zxcvbn-php in favor of a builtin solution
  • fix tests
  • [FrameworkBundle] enable metadata cache when annotation is disabled
  • [Serializer] Preserve array keys while denormalize variadic parameters
  • [Serializer] Fix serializedpath for non scalar types
  • Fix test
  • Throw Symfony OutOfBounds exception instead of default one
  • [Form] CollectionType apply prototypeOptions to ResizeFormListener new fields
  • Update CHANGELOG for 5.4.22
  • Update CONTRIBUTORS for 5.4.22
  • Update VERSION for 5.4.22
  • Bump Symfony version to 5.4.23
  • Update CHANGELOG for 6.2.8
  • Update VERSION for 6.2.8
  • Bump Symfony version to 6.2.9
  • [Validator] Improve entropy estimation in PasswordStrengthValidator
  • [FrameworkBundle] Fix registering ExpressionValidator
  • Apply no_null_property_initialization PHP-CS-Fixer rule
  • Apply align_multiline_comment PHP-CS-Fixer rule
  • Apply operator_linebreak PHP-CS-Fixer rule
  • [Mailer] Allow overriding default eSMTP authenticators
  • [Notifier][SimpleTextin] Fix license year
  • Fix tests
  • [WebProfilerBundle] Add clickable entry view to debug toolbar
  • List basecom as backer of version 6.3
  • [Console] Add Les-Tilleuls.coop as a backer of version 6.3
  • [Security] Add SymfonyCasts as a backer of version 6.3
  • [Notifier] Fix registering many bridges
  • [Translation] Crowdin renewed their sponsorship for v6.3
  • [FrameworkBundle] alximy renewed their sponsorship for v6.3
  • [HttpClient] Fix canceling MockResponse
  • Add new attributes to Infobip API transport to support reporting behavior
  • [DoctrineBridge] fix issue with missing stopwatch events
  • Add more precise types in EnvVarProcessorInterface
  • Fix the test for casting FlattenException on Windows
  • Improve the description of the Intl component
  • [Serializer] Cleanup static uses when classes are final
  • [Serializer] Add missing upgrade note
  • Fix intl data tests
  • [FrameworkBundle] Reduce aliasing for etc bridges
  • [Serializer] Make ProblemNormalizer give details about ValidationFailedException and PartialDenormalizationException
  • [ErrorHandler] Fix sending Vary header with SerializerErrorRenderer
  • UPGRADE-6.3.md: deprecate "@required"
  • [Scheduler] Allow messages from the SchedulerTransport to be rejected
  • [Serializer] Fix tests
  • [DoctrineBridge] Deprecate passing Doctrine subscribers to ContainerAwareEventManager, use listeners instead
  • Harmonize command formats and ensure autocompletion is same
  • [Notifier] Document Firebase options object in readme
  • [Serializer] Mark ObjectNormalizer as final for 7.0
  • [BrowserKit] Improve the error message when submitForm() can't find the form
  • [BrowserKit] Add proper exception hierarchy
  • deprecate the $secret argument of the PersistentRememberMeHandler constructor
  • Avoid call on null
  • [Serializer] Marking some Normalizer classes as final
  • [Mailer] Add brifge documentation
  • fix deprecations caused by ObjectNormalizer marked as final
  • fix merge
  • [TwigBridge][TwigBundle] Add current locale to AppVariable
  • [SecurityBundle] Set request stateless if the attribute is not already defined
  • [Console] Restoring the ability to output unicode text to the Win10 console
  • Update return type for NormalizableInterface::normalize to match NormalizerInterface::normalize
  • [Notifier] Add options to Telegram Bridge
  • [Intl] Update the ICU data to 73.1
  • Update CHANGELOG for 6.2.9
  • Update VERSION for 6.2.9
  • Bump Symfony version to 6.2.10
  • [Security] Add OidcUserInfoTokenHandler and OidcUser
  • Fix serializer normalize attribute context
  • [Security] Fix OidcUser::eraseCredentials() signature
  • Sync .github/expected-missing-return-types.diff
  • Fix composer.json
  • [Serializer] Add missing return types
  • [HttpKernel] Create Attributes #[MapRequestPayload] and #[MapQueryString] to map Request input to typed objects
  • [HttpClient] fix proxied redirects in curl client
  • [Serializer] Add Debug command
  • [HttpKernel] Allow injecting query parameters in controllers by typing them with #[MapQueryParameter] attribute
  • Register QueryParameterValueResolver as "controller.targeted_value_resolver"
  • [VarDumper] Add missing return types
  • cs fix
  • [Mime] Added getDispostion() to TextPart to get current content disposition.
  • Fix test
  • [HttpKernel] Merge PartialDenormalizationException errors and validation errors together
  • [Serializer] Fix denormalization of object with typed constructor arg (not castable) and with COLLECT_DENORMALIZATION_ERRORS
  • [Validator] Add new parameter for translation on Length constraint: current value length.
  • [Routing] Convert BackedEnums passed as controller action parameters to their value
  • [Security] Fix OIDC-related test cases
  • [HttpKernel] Don't use eval() to render ESI/SSI
  • [ErrorHandler] Don't throw deprecations for HttplugClient
  • [PropertyInfo] Fix phpDocExtractor nullable array value type
  • [Notifier] Fix PagerDutyTransport
  • [Serializer] Unexpected value should throw UnexpectedValueException
  • [Form] Cast choices value callback result to string
  • [PropertyAccess] Readonly properties must have no PropertyWriteInfo
  • [HttpFoundation] Fix memory limit problems in BinaryFileResponse
  • [Form] fix merge
  • [HttpFoundation] Fix BinaryFileResponse
  • [Mailer] [Mailjet] Use body MessageID instead of X-MJ-Request-GUID
  • [Messenger] Fix warning message on failed messenger show command
  • [VarDumper] Make the server TCP connection sync
  • [PHPUnitBridge] Fix PHPUnit 10.1 compatibility
  • [Messenger] [Redis] Fixed problem where worker stops handling messages on first empty message
  • [Mime] Form field values with integer keys not resolved correctly
  • [Messenger] Fix deprecation layer of RedeliveryStamp
  • [Console] Fix computing column width containing multibyte chars
  • for System hangs when a php interpreter is executed via Process symfony/symfony#49320
  • [HttpKernel] Tests for DataCollector
  • CS fix
  • Fix tests
  • Fix tests
  • [Intl] Allow compressing emoji and data maps
  • [BrowserKit][HttpClient] Update the value of some user agents to comply with the RFC 9110 specification
  • [Validator] Fix support of Enum to ConstraintValidator::formatValue
  • Fix tests
  • [Form] Fix "prototype_data" option creating duplicates instead of new lines
  • [Mime] regenerate test certificates
  • [Form] Don't render seconds for HTML5 date pickers unless "with_seconds" is explicitly set
  • [DependencyInjection] Fallback to default value when autowiring undefined parameters for optional arguments
  • deprecate not configuring widget option for DateType, DateTimeType, TimeType
  • [Form] Fix deprecation layer
  • [DependencyInjection] Fix support for inner collections when using <bind>
  • [Serializer] Add types to private and internal properties
  • [HttpKernel] Collect data from every event dispatcher
  • [HttpClient] Allow using multiple base_uri as array for retries
  • [HttpClient] Improve MockHttpClient exception message
  • [HttpKernel] Enhance MapRequestPayload adding format and validation group
  • [Cache] Support Redis cluster connections with predis/predis:^2.0
  • [HttpClient] Add JsonMockResponse
  • [Security] Added error code to UserPassword constraint
  • [RemoteEvent] Cleanup some leftover
  • [Translation] Crowdin Bridge: Fix locale vs LanguageId
  • cs fix
  • [HttpClient] Fix global state preventing two CurlHttpClient instances from working together
  • Fix test provider
  • [HttpClient] Support file uploads by nesting resource streams in option "body"
  • [HttpFoundation] Clear IpUtils cache to prevent memory leaks
  • [HttpFoundation] add Request::getPayload()
  • [Security][HttpKernel] Create Controller Argument Resolver for Security Token
  • [Workflow] Adding more return types
  • Update Request.php
  • [HttpKernel] Enhance MapQueryString adding validation group
  • [VarExporter] Fix forwarding references to proxied classes
  • [Config] Improve GlobResource performance
  • Add the void return type in Lock interfaces
  • Add the void return type in Semaphore interfaces
  • Add the void return type in Lock interfaces
  • [Security] Fix return type of AuthenticationSuccessHandlerInterface::onAuthenticationSuccess()
  • [RemoteEvent] Fix ConsumerInterface usage
  • Fix the semaphore tests
  • Make onAuthenticationSuccess Response optional
  • Fix Psalm errors
  • Add the void return type in the Translation interfaces
  • Fix tests for the Lock component
  • [Cache] Fix success interpretation when pruning cache
  • [DependencyInjection] Fix support for empty env vars
  • Add "composer require..." in all exception messages when needed
  • [Webhook] Rename AbstractRequestParserTest
  • [Contracts] Rename ServiceLocatorTest
  • [DependencyInjection] Do not ignore tags name attribute when it does not define their name
  • [BrowserKit, HttpClient] Minor updates in the default user agents
  • [Serializer] Fix MissingConstructorArgumentsException returning missing argument one by one
  • [DependencyInjection] More predictable EnvVarProcessor CSV empty string parsing
  • [Cache] Send Predis SSL options in the $hosts parameter
  • Fix CI
  • Fix low-deps
  • Fix the usage of the zsh completion through the fpath discovery
  • Fix the list of supported shells for completions in a phar
  • [Scheduler] add basic SchedulerTest
  • Add CI check ensuring interfaces have return types
  • [Serializer] Fix tests
  • [FrameworkBundle] Make service edges unique
  • [Scheduler] add @kbond to CODEOWNERS
  • [Scheduler] fix brittle test
  • [DependencyInjection] Fix code generating lazy closures
  • [HttpClient] Adjust JsonMockResponse exception
  • [Form] Move classes to Twig bridge
  • [Dumper] Trim leading newlines when checking if value begins with a space
  • [Scheduler] Allow MessageGenerator to provide a MessageContext
  • [Scheduler] have TriggerInterface extend \Stringable
  • [Scheduler] Add the possibility to override the default CallbackTrigger description
  • [Validator] Update the name of a password strength level
  • Fix tests
  • Check if trace.curlCommand is defined in profiler
  • Add remaining missing return types to safe methods
  • cs fix
  • trim(): Argument [HttpFoundation] ParameterBag::getEnum() #1 () must be of type string, bool given
  • [Scheduler] add "hashed" cron expression support
  • Add missing return types
  • [Scheduler] add schedule name to MessageContext
  • [HttpClient] Add PSR-18 to HttplugClient since HTTPlug is deprecated
  • [Mime] Fix method name in Changelog
  • [Notifier] Remove strict_types=1 from test
  • Fix test class name
  • Update CallbackTriggerTest.php
  • Update CHANGELOG for 5.4.23
  • Update CONTRIBUTORS for 5.4.23
  • Update VERSION for 5.4.23
  • Fix merge
  • Bump Symfony version to 5.4.24
  • Fix merge
  • [WebProfilerBundle] Readded some missing styles
  • Update CHANGELOG for 6.2.10
  • Update VERSION for 6.2.10
  • Bump Symfony version to 6.2.11
  • Add missing return types
  • Add missing return types
  • [Asset] [AssetMapper] New AssetMapper component: Map assets to publicly available, versioned paths
  • Update CHANGELOG for 6.3.0-BETA1
  • Update VERSION for 6.3.0-BETA1
  • Bump Symfony version to 6.3.0
  • Fix registering traceable voters, argument resolvers and normalizers
  • [Messenger] Fix registering message handlers
  • [ErrorHandler] Skip Httplug deprecations for HttplugClient
  • [AssetMapper] Fix import map package parsing with an @ namespace
  • [AssetMapper] CS fix
  • Improve type annotation of ContainerInterface::get()
  • [DI] Improve error message in LazyClosure when no "id" is provided
  • [HttpClient] Dev-require php-http/message-factory
  • [HttpKernel] Fix handling of MapRequest* attributes
  • [Mailer] Mark suppress bounces as DROPPED
  • [HttpKernel] Forward _stateless attribute to inline rendered fragments
  • Do not expose Sfjs as it is unused and conflicts with WebProfilerBundle’s
  • [Mailer][RemoteEvent] Enhance webhook reason with Mailgun data
  • [OptionsResolver] add ignoreUndefined() method to allow skip not interesting options
  • Remove legacy filters remnants
  • [Serializer] Throw NotNormalizableValueException if it doesn't concern a backedEnum in construct method
  • [AssetMapper] Fixing wrong values being output in command
  • [DependencyInjection] Allow AutowireCallable without method
  • [HttpClient] Ensure HttplugClient ignores invalid HTTP headers
  • [HttpClient] Favor php-http/discovery instead of nyholm/psr7
  • [DoctrineBridge] skip subscriber if listener already defined
  • [WebProfilerBundle] Profiler respect stateless attribute
  • Fix typo
  • [HttpKernel] Don't use eval() to render ESI/SSI
  • [HttpClient] Fix getting through proxies via CONNECT
  • [HttpKernel] Do not reset lazy services if they are not initialized
  • [ErrorHandler] Fix the design of the exception page tabs
  • [AssetMapper] Adding debug:assetmap command + normalize paths
  • Remove usage of constant for better consistency across the codebase
  • Remove usage of constant for better consistency across the codebase
  • Remove usage of constant for better consistency across the codebase
  • [HttpKernel] Fix restoring surrogate content from cache
  • Do not check errored definitions’ type
  • [AssetMapper] Better public without digest
  • [FrameworkBundle] minor fix
  • [Serializer] Add flag to require all properties to be listed in the input
  • [AssetMapper] Fixing 2 bugs related to the compile command and importmaps
  • fix(twig-bundle): fixed wrong symfony/twig-bridge 8000 dependency
  • Explicit tab controls’ color as they can be buttons
  • Update CHANGELOG for 6.3.0-BETA2
  • Update VERSION for 6.3.0-BETA2
  • Bump Symfony version to 6.3.0
  • [HttpClient] Fix setting duplicate-name headers when redirecting with AmpHttpClient
  • [HttpClient] Fix test suite
  • [AssetMapper] Adding autoconfiguration tag for asset compilers
  • [DependencyInjection] Fix dumping/loading errored definitions in XML/Yaml
  • Fix param type annotation
  • Allow resources in Query::setParam
  • [Messenger] Add IS_REPEATABLE flag to AsMessageHandler attribute
  • [FrameworkBundle][Webhook] Throw when required services are missing when using the Webhook component
  • [Scheduler] add JitterTrigger
  • Update HeaderBag::all PhpDoc
  • [PropertyAccess] Fix nullsafe operator on array index
  • Consistently use var $container to reference the container builder+configurator
  • [Cache] Sync RelayProxy
  • [HttpClient] Add option crypto_method to set the minimum TLS version and make it default to v1.2
  • Sync createTabs from WebProfilerBundle
  • [Messenger] Use immutable dates in the storage when using Doctrine
  • [Scheduler] add RecurringMessage::getId() and prevent duplicates
  • [AssetMapper] Flexible public paths + relative path imports + possibility of "building" assets
  • [FrameworkBundle] Ignore vars from dotenv files in secrets:list
  • [DependencyInjection] Drop IO in FileLoader
  • [Messenger] Store dates in UTC when using Doctrine
  • [DependencyInjection] Fix dumping non-shared factories with TaggedIteratorArgument
  • [HttpFoundation] Fix file streaming after connection aborted
  • [Serializer] Handle datetime deserialization in U format
  • [Notifier] Add SMS options unit tests
  • [Notifier] Add SMS options to Clickatell notifier
  • [Notifier] Add SMS options to Esendex notifier
  • [Notifier] Add SMS options to FortySixElks notifier
  • [Notifier] Ass SMS options to ContactEveryone notifier
  • [Notifier] Add SMS options to MessageBird notifier
  • [Notifier] Add SMS options to GatewayApi notifier
  • [Notifier] Add SMS options to OrangeSms notifier
  • [Notifier] Add SMS options to AllMySms notifier
  • [Notifier] Add ClickSend notifier bridge
  • [Notifier] Add Smsmode bridge
  • [AssetMapper] Normalizing logicalPath to a getter like all other properties
  • Fixed changelog
  • [AssetMapper] Adding "excluded_patterns" option
  • [AssetMapper] Improving XSD to use attributes whenever possible
  • [Notifier] Bring consistency to bridges
  • [Security] Skip clearing CSRF Token on stateless logout
  • [AssetMapper] Add cached asset factory
  • Update CHANGELOG for 6.3.0-BETA3
  • Update VERSION for 6.3.0-BETA3
  • Bump Symfony version to 6.3.0
  • [HttpKernel] Account for Response::getDate() possibly returning a DateTimeImmutable
  • [FrameworkBundle] Generate caches consistently on successive run of cache:clear command
  • [Console] Remove redundant method getSaturation()
  • [WebProfilerBundle] Tweak the HTML code of the Twig entry view
  • Ensure DoctrineIntegrationTest always run in UTC
  • [PropertyInfo] Fix PhpStanExtractor when constructor has no docblock
  • Provide a value if possible when parameter is not found
  • [VarDumper] Fix HTML of invisible characters
  • Fix problem with empty generator in StreamedJsonResponse
  • [VarDumper] Reduce stylesheet assignments via JavaScript in HtmlDumper
  • [Notifier] Update AmazonSns url in doc from de to en
  • [DependencyInjection] Add exclude-self option to dumpers
  • Fix get sender name in turbosms notifier
  • [Process] Stop the process correctly even if underlying input stream is not closed:
  • Bug fix for paths that start with the same string
  • UrlHelper is now aware of RequestContext changes
  • [HttpFoundation] UrlHelper is now aware of RequestContext changes
  • [FrameworkBundle] Fix Workflow without a marking store definition uses marking store definition of previously defined workflow
  • [Serializer] Fix SerializedPath not working with constructor arguments
  • [DoctrineBridge] Allow to ignore specific nullable fields in UniqueEntity
  • [Validator] Allow to use translation_domain false for validators and to use custom translation domain by constraints
  • [Security] Improve DX when invalid custom authenticators
  • [AssetMapper] Adding "path" option to importmap:require
  • [Console] Remove exec and replace it by shell_exec
  • [VarDumper][DebugBundle] Fix dump labels compatibility
  • [AssetMapper] Fixing improper use of hasOption() in command
  • [AssetMapper] Fix bug where dependencies were preloaded even if the parent was not
  • [Translation] Fix handling of null messages in ArrayLoader
  • Fix merge
  • Fix merge
  • [Security] Test CsrfTokenClearingLogoutListener with stateless logout
  • [Notifier] Document Notifier options in README files
  • fix exception wording
  • [Scheduler] Improve triggers performance when possible
  • [Notifier] Document Notifier options in README files
  • [Notifier] Document Notifier options in README files 5.4
  • [WebProfilerBundle] Fix cursor on link that has no href
  • Convert A link to Button
  • Update CHANGELOG for 6.3.0-RC1
  • Update VERSION for 6.3.0-RC1
  • Bump Symfony version to 6.3.0
  • [AssetMapper] Fixing incorrect exception & adding allowing more realistic error mode
  • CS fix
  • [AssetMapper] Sometimes asset contents are built from non-asset files
  • Change default branch in PR template
  • [VarDumper] Fix dd() showing line with null
  • Fix CI for experimental mode
  • [AssetMapper] Avoid loading potentially ALL assets in dev server
  • Update github/workflows/scorecard
  • [AssetMapper] Change default importmap "provider" to JsDelivr+esm
  • [Console] Fix PHP Doc of InputArgument
  • [AssetMapper] Fix wiring resolvers, send requests in parallel and use readonly properties in MappedAsset
  • Fix: Typo in PHPDoc
  • [VarDumper] Fix failures on appveyor
  • [Console] block input stream if needed When the input stream used in the question helper is not blocking, the default value is always used as the stream return false. In order to fix that, we force the stream to be in blocking state and go back to the old state after so other logic is not impacted by this change
  • [VarDumper][HttpKernel] Fix dumping with labels
  • [5.4] Allow PhpUnitBridge v7
  • [AssetMapper] Using a separate logger channel
  • [DependencyInjection] Revert "Use weak references in the container"
  • [HttpKernel] conflict with VarDumper < 6.3
  • [AssetMapper] Adding documentation to importmap.php to guide the user
  • [AssetMapper] Adding an "alias" syntax to importmap:require
  • [SecurityBundle] Update security-1.0.xsd to include missing access-token definition
  • Update CHANGELOG for 5.4.24
  • Update VERSION for 5.4.24
  • Update CONTRIBUTORS for 5.4.24
  • Bump Symfony version to 5.4.25
  • Update CHANGELOG for 6.2.11
  • Update VERSION for 6.2.11
  • Bump Symfony version to 6.2.12
  • Update CHANGELOG for 6.3.0-RC2
  • Update VERSION for 6.3.0-RC2
  • Bump Symfony version to 6.3.0
  • Ignore definitions bearing the container.excluded tag
  • Fix Typos
  • Fix unable to use asset mapper with CSP
  • [HttpKernel] Fix default value ignored with pinned resolvers
  • [FrameworkBundle][PhpUnitBridge] Configure doctrine/deprecations as expected
  • CS fix
  • [Notifier] Fix ContactEveryoneOptions
  • [SecurityBundle] Fix configuring OIDC user info token handler client
  • Fix tests
  • [FrameworkBundle] remove support for preloading ESM modules using headers
  • [SecurityBundle] add missing xsd definition for OIDC
  • [DependencyInjection] Escape % from parameter-like default values
  • [Security] Add clock dependency to OidcTokenHandler
  • [Filesystem] Follow symlinks when dumping files
  • [Serializer] Fix discriminator map not working with AbstractNormalizer::OBJECT_TO_POPULATE
  • [Security] Validate aud and iss claims on OidcTokenHandler
  • Update CHANGELOG for 6.3.0
  • Update VERSION for 6.3.0
  • Bump Symfony version to 6.3.1
  • [VarDumper] Use documentElement instead of body for JS flag
  • [FrameworkBundle] ease migration to symfony 6.3
  • add @throws to getPayload
  • [Serializer] Fix discriminator map not working with AbstractNormalizer::OBJECT_TO_POPULATE
  • [SecurityBundle] Fix error message when using OIDC and web-token/jwt-core is not installed
  • Fix broken symlink tests Windows PHP 7.4+
  • [Messenger] Add deprecation message for the "messenger.listener.stop_worker_on_sigterm_signal_listener" service
  • [Cache] Fix DBAL deprecations
  • [PhpUnitBridge] Disable deduplication of Doctrine deprecations
  • [SecurityBundle] Use LogicException instead of Definition::addError()
  • [VarDumper] Add named arguments coverage of VarDumper's function
  • [DependencyInjection] Allow casting env var processors to cast null
  • [Mailer] [MailPace] Fix undefined array key in errors response
  • [Cache] Fix tests
  • [Serializer] Fix ignoring objects that only implement DenormalizableInterface
  • [PhpUnitBridge] Add missing line in changelog
  • [PhpUnitBridge] Fix classifying doctrine/deprecations as direct/indirect
  • [DependencyInjection] Fix support for false boolean env vars
  • [Messenger] Prevent StopWorkerOnSignalsListener::$signals to be assigned to null in case SIGTERM constant doesn't exist
  • [PhpUnitBridge] Fix support for the NO_COLOR env var
  • [Validator] Remove internal from methods on non-internal interfaces
  • Fix Doctrine deprecations
  • [PhpUnitBridge] Fix requiring bootstrap.php
  • fix merge
  • fix Doctrine deprecations
  • bump validator requirement
  • [DoctrineBridge] Update deprecations baseline
  • [DoctrineBridge] Fix deprecations baseline in integration tests
  • [GHA] Enable deprecations baseline
  • Ignore doctrine deprecations
  • [Validator] Return types change on ExecutionContextInterface break BC symfony/symfony#50526: Reverting ExecutionContextInterface void return types in favor of docblock annotations.
  • Fix Crawler::filter throw phpdoc
  • [DependencyInjection] Support PHP 8.2 true type
  • [Lock] Fix sprintf
  • remove unusable cache pools
  • [SecurityBundle] Mark SignatureAlgorithmFactory as internal
  • [Routing] Fix Psalm
  • [PhpUnitBridge] Ignore deprecations about the annotation mapping driver when it's not possible to move to the attribute driver yet
  • [DoctrineBridge] Work around "Doctrine\DBAL\Connection::getEventManager()" deprecations
  • Fix .github/expected-missing-return-types.diff
  • [GHA] Remove deprecations-baseline
  • [FrameworkBundle] Fix debug:config & config:dump in debug mode
  • Add test cases for MariaDBPlatform
  • [DoctrineBridge] Remove (wrong) PHPDoc on ContainerAwareEventManager
  • widen return type for Monolog 3 compatibility
  • [FrameworkBundle] Show non-bundle extensions in debug:config & config:dump list view & completion
  • [Notifier] Add docs about updating Slack messages
  • [Cache] Fix RedisTrait::createConnection for cluster
  • Run unit tests with PHP 8.3
  • [GHA] Always install with --ignore-platform-req=php+
  • [GHA] Skip loading ext-relay when it's not available
  • [Clock] Fix MockClock::modify() on PHP 8.3
  • [HttpClient] Remove final keyword on AsyncResponse
  • Add missing EN and FR translations for newest constraints
  • CS fix
  • [Validator][Translator] Fix xlf files for en & fr translations. Bug introduced by Add missing EN and FR translations for newest constraints symfony/symfony#50590
  • [Validator] Add the message option to the PasswordStrength constraint
  • Revert "[Messenger] Respect isRetryable decision of the retry strategy when deciding if failed message should be re-delivered"
  • [FrameworkBundle] Ignore missing directories in about command
  • Don't mark RedispatchMessage as internal
  • [Security] Fix log message in OidcTokenHandler
  • [HttpClient] Force int conversion for floated multiplier for GenericRetryStrategy
  • [DoctrineBridge] add missing UPGRADE notes for [Cache][DoctrineBridge][Lock][Messenger] Add parameter $isSameDatabase to configureSchema() methods symfony/symfony#50689
  • [Intl] Update the ICU data to 73.2
  • [FrameworkBundle] Fix setting decorated services during tests
  • [FrameworkBundle] Fix secrets:list not displaying local vars
  • Only update autoload_runtime.php when it changed
  • [VarDumper] Dumping DateTime throws error if getTimezone is false
  • [SecurityBundle] Remove last usages of tag security.remember_me_aware
  • [HttpKernel] make RequestPayloadValueResolver:resolve() throw on variadic argument
  • [HttpClient] Fix encoding some characters in query strings
  • [Validator] Add missing validator translations in Polish language
  • [HttpClient] Explicitly exclude CURLOPT_POSTREDIR
  • [HttpFoundation] Make Request::getPayload() return an empty InputBag if request body is empty
  • [Serializer] Refactor tests to not extends ObjectNormalizer
  • [Messenger] Preserve existing Doctrine schema
  • [WebProfilerBundle] right blocks: fix display
  • [HttpKernel] Nullable and default value arguments in RequestPayloadValueResolver
  • [WebProfilerBundle] Fix the accessibility of some background color
  • [PhpUnitBridge] Require PHPUnit 9.6 by default
  • [AssetMapper] Allow DirectoryResource for cache
  • [DependencyInjection] Skip errored definitions deep-referenced as runtime exceptions
  • [FrameworkBundle] Fixed parsing new JSON output of debug:config not possible
  • Update CHANGELOG for 6.3.1
  • Update VERSION for 6.3.1
  • Bump Symfony version to 6.3.2
  • [EnventDispatcher] Fix method resolving for listeners

nicolas-grekas and others added 30 commits March 28, 2023 16:39
…icolas-grekas)

This PR was merged into the 5.4 branch.

Discussion
----------

[Cache] Fix storing binary keys when using pgsql

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix symfony#49748
| License       | MIT
| Doc PR        | -

Commits
-------

be88fd0 [Cache] Fix storing binary keys when using pgsql
…ssignment operator (weaverryan)

This PR was merged into the 5.4 branch.

Discussion
----------

[Cache] Fix php7 compat on 5.4: null coalescing assignment operator

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | None
| License       | MIT
| Doc PR        | Not needed

It looks like symfony#49848 accidentally introduced a syntax not compat with php 7.2/7.3. So, an annoying little PR to fix that.

Commits
-------

7e5fe59 [Cache] Removing null coalescing assignment operator on 5.4
… catalogue domains instead of operation domains (welcoMattic)

This PR was merged into the 5.4 branch.

Discussion
----------

[Translation] TranslatorBag::diff now iterates over catalogue domains instead of operation domains

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix symfony#47886 <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License       | MIT
| Doc PR        |

For Loco Provider (at least, but I'm pretty sure it applies for Lokalise and Crowdin), the `--force` option on `translation:push` command has no effect.

The main cause is located in the `TranslatorBag::diff` method which was iterating over `$operation->getDomains()` to add new messages to the diff catalogue. But, the fact is `$operation->getDomains()` returns all domains *AND* their `+intl-icu` variants! Which is certainly not what we want here.

See the test that covers the case

```php
public function testDiffWithIntlDomain()
{
    $catalogueA = new MessageCatalogue('en', [
        'domain1+intl-icu' => ['foo' => 'foo', 'bar' => 'bar'],
        'domain2' => ['baz' => 'baz', 'qux' => 'qux'],
    ]);

    $bagA = new TranslatorBag();
    $bagA->addCatalogue($catalogueA);

    $catalogueB = new MessageCatalogue('en', [
        'domain1' => ['foo' => 'foo'],
        'domain2' => ['baz' => 'baz', 'corge' => 'corge'],
    ]);

    $bagB = new TranslatorBag();
    $bagB->addCatalogue($catalogueB);

    $bagResult = $bagA->diff($bagB);

    $this->assertEquals([
        'en' => [
            'domain1' => ['bar' => 'bar'],
            'domain2' => ['qux' => 'qux'],
        ],
    ], $this->getAllMessagesFromTranslatorBag($bagResult));
}
```

Without the change, `'foo' => 'foo'` was in the result bag.

Replaces symfony#47986

Commits
-------

178abbf TranslatorBag::diff now iterates over catalogue domains instead of operation domains
…ck when canceling a MockResponse (fancyweb)

This PR was merged into the 5.4 branch.

Discussion
----------

[HttpClient] Fix not calling the on progress callback when canceling a MockResponse

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

I want to assert that a response is canceled under certain circumstances.

My first approach was to get the info from the MockResponse I pass as the response factory to the MockHttpClient but this one is lost since a new instance is created when the request method is called.

My next approach was to wrap the MockHttpClient I pass to the class I'm testing with a TraceableHttpClient. But it doesn't work because the traced info is outdated. The problem seems to be that the on-progress callback is not called when a MockResponse is canceled.

Commits
-------

a27bd88 [HttpClient] Fix not calling the on progress callback when canceling a MockResponse
…tion is disabled (bastnic)

This PR was merged into the 5.4 branch.

Discussion
----------

[FrameworkBundle] enable metadata cache when annotation is disabled

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

When using Annotations, annotations are cached at `AnnotationLoader` level.
Which is cleared when entities are changed. So the dev experience is optimal.

```
[ClassMetadataFactory.php](vendor/symfony/serializer/Mapping/Factory/ClassMetadataFactory.php") on line 51:
[Symfony\Component\Serializer\Mapping\Loader\LoaderChain](vendor/symfony/serializer/Mapping/Loader/LoaderChain.php&line=28#line28) {symfony#543 ▼
  -loaders: array:1 [▼
    0 => [Symfony\Component\Serializer\Mapping\Loader\AnnotationLoader](vendor/symfony/serializer/Mapping/Loader/AnnotationLoader.php&line=33#line33) {symfony#544 ▼
      -reader: [Doctrine\Common\Annotations\PsrCachedReader](vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/PsrCachedReader.php&line=22#line22) {symfony#262 ▼
        -delegate: [Doctrine\Common\Annotations\AnnotationReader](vendor/doctrine/annotations/lib/Doctrine/Common/Annotations/AnnotationReader.php&line=20#line20) {symfony#263 ▶}
        -cache: [Symfony\Component\Cache\Adapter\PhpArrayAdapter](vendor/symfony/cache/Adapter/PhpArrayAdapter.php&line=32#line32) {symfony#277 ▶}
        -debug: true
        -loadedAnnotations: array:14 [▶]
        -loadedFilemtimes: array:4 [▶]
      }
    }
  ]
}
```

When using yaml files, there is no cache at the loader level so I added in the past the same cache as for the prod env, as the metadata are effectively cleared when using only yaml config files.

symfony#35109

The regression introduced by my patch is for people that do not use mapping files but use annotations.

symfony#41961

But now, we are in the opposite situation: no cache for people using mapping files but not annotations.

On a current project it means loading 83 yaml files for each dev requests. It's not good at all.

A simple local fix is to add that in a dev services files.

```yaml
serializer.mapping.cache_class_metadata_factory:
    class: 'Symfony\Component\Serializer\Mapping\Factory\CacheClassMetadataFactory'
    decorates: 'serializer.mapping.class_metadata_factory'
    arguments: ['`@serializer`.mapping.cache_class_metadata_factory.inner', '`@serializer`.mapping.cache.symfony']
```

![image](https://user-images.githubusercontent.com/84887/224833940-b8e7ad72-e7f6-44e7-a924-0b20f2f0cdae.png)

A solution in Symfony could be:
1/ only yaml/xml mapping files (`enable_annotations: false`) : cache like prod => that what I did in this PR, as it fixes the current perf regressions on my different projects. There is no cache on yaml/xml file as soon as annotation is enabled (which is the default)
2/ add a cache at reader level for yaml/xml loader
3/ add a cache cleaner at metadata level when annotation are enabled

Commits
-------

1773dff [FrameworkBundle] enable metadata cache when annotation is disabled
…fication emails (1ed)

This PR was merged into the 5.4 branch.

Discussion
----------

[TwigBridge] Fix raw content rendering in HTML notification emails

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        |

Applying nl2br on raw HTML seems wrong to me and it also makes raw ineffective.

Commits
-------

f301f1d [TwigBridge] Fix raw content rendering in HTML notification emails
…variadic parameters (melya)

This PR was submitted for the 6.2 branch but it was squashed and merged into the 5.4 branch instead.

Discussion
----------

[Serializer] Preserve array keys while denormalize variadic parameters

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix symfony#49616
| License       | MIT
| Doc PR        | Let me know if needed
| PHP        | 8.1.15

Hi Symfony folks!

I've struggled with denormalization issue.
It appears when serialize an object with variadic parameter from associative array.
Currently, after denormalization array keys get reset and it is not compatible with previous version of object.

Example:
```php
<?php

declare(strict_types=1);

use Symfony\Component\Serializer\Encoder\JsonEncoder;
use Symfony\Component\Serializer\Normalizer\PropertyNormalizer;
use Symfony\Component\Serializer\Serializer;

require_once __DIR__ . "/vendor/autoload.php";

final class Dummy {
    public function __construct(public readonly string $i)
    {
    }
}

final class DummyWithVariadic {
    public $dummies;
    public function __construct(Dummy ...$dummies)
    {
        $this->dummies = $dummies;
    }
}

$serializer = new Serializer([$normalizer = new PropertyNormalizer()], [new JsonEncoder()]);
$normalizer->setSerializer($serializer);

$dummies = ["d1" => new Dummy("d1 value"), "d2" => new Dummy("d2 value")];
$object  = new DummyWithVariadic(...$dummies);
var_dump($object);
/* Output:
class DummyWithVariadic#310 (1) {
  public $dummies =>
  array(2) {
    'd1' =>
    class Dummy#308 (1) {
      public readonly string $i =>
      string(8) "d1 value"
    }
    'd2' =>
    class Dummy#309 (1) {
      public readonly string $i =>
      string(8) "d2 value"
    }
  }
}
*/

$json = $serializer->serialize($object, "json");
echo $json . PHP_EOL;
/* Output:
{"dummies":{"d1":{"i":"d1 value"},"d2":{"i":"d2 value"}}}
*/

$deserialized = $serializer->deserialize($json, DummyWithVariadic::class, "json");
var_dump($deserialized);
/* Output:
class DummyWithVariadic#315 (1) {
  public $dummies =>
  array(2) {
    [0] =>
    class Dummy#319 (1) {
      public readonly string $i =>
      string(8) "d1 value"
    }
    [1] =>
    class Dummy#320 (1) {
      public readonly string $i =>
      string(8) "d2 value"
    }
  }
}
*/

$jsonFromDeserialized = $serializer->serialize($deserialized, "json");
echo $jsonFromDeserialized . PHP_EOL;
/* Output:
{"dummies":[{"i":"d1 value"},{"i":"d2 value"}]}
*/

var_dump($json === $jsonFromDeserialized); // And now the deserialization result without respected array keys :(
/* Output:
bool(false)
*/
```

Let me know if we can add this fix for earlier versions 🙌
>  Bug fixes must be submitted against the lowest maintained branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).

I hope it's not , feedback is appreciated!
> Never break backward compatibility (see https://symfony.com/bc)

Commits
-------

c1f844a [Serializer] Preserve array keys while denormalize variadic parameters
This PR was merged into the 5.4 branch.

Discussion
----------

[HttpClient] Fix canceling MockResponse

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | -
| Tickets       | symfony#49925
| License       | MIT
| Doc PR        | -

MockResponse not issued by MockHttpClient might not have the http_method info set.

http_code looks safe since it's defined in the constructor.

Commits
-------

f9abba7 [HttpClient] Fix canceling MockResponse
…vents (dmaicher)

This PR was squashed before being merged into the 5.4 branch.

Discussion
----------

[DoctrineBridge] fix issue with missing stopwatch events

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix doctrine/DoctrineBundle#1622
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->
<!--
Replace this notice by a short README for your feature/bugfix.
This will help reviewers and should be a good start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - Bug fixes must be submitted against the lowest maintained branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the latest branch.
 - For new features, provide some code snippets to help understand usage.
 - Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
 - Never break backward compatibility (see https://symfony.com/bc).
-->

This fixes doctrine/DoctrineBundle#1622

We were not triggering the stopwatch events/sections properly when using prepared statements.

Now it works:

![image](https://user-images.githubusercontent.com/921145/214097708-2986e3c9-262e-4b7e-903e-9b7e0dda208e.png)

![image](https://user-images.githubusercontent.com/921145/214097936-67948cb3-63ad-4eff-b53e-f8ff9e12a7f0.png)

Commits
-------

52f4f7b [DoctrineBridge] fix issue with missing stopwatch events
This PR was squashed before being merged into the 5.4 branch.

Discussion
----------

Fix intl data tests

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | n/a
| License       | MIT
| Doc PR        | n/a

The migration to static data providers in tests missed a broken method call because the CI did not run the intl-data tests when modifying those tests outside of a PR updating the data (I caught this when my PR moving the emoji data to a different location triggered this workflow).

Commits
-------

7ddec68 Fix intl data tests
…adme (alamirault)

This PR was merged into the 5.4 branch.

Discussion
----------

[Notifier] Document Firebase options object in readme

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | no
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

Notifier bridges documentation is now in readme. This PR add missing documentation for Firebase Options.

(Initially working on symfony/symfony-docs#14950)

Commits
-------

a116859 [Notifier] Document Firebase options object in readme
…ethods (VincentLanglet)

This PR was merged into the 5.4 branch.

Discussion
----------

[DomCrawler] Avoid passing null to substr/strrpos methods

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix symfony#49960
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->

When calling `resolve('foo', 'http://localhost?bar=1')` two php deprecations were triggered.
This is because `parse_url` returns null and then we use the result as a string.

I made the code working the same for `resolve('foo', 'http://localhost?bar=1')` than for `resolve('/foo', 'http://localhost?bar=1')` (which was already tested and was not triggering the deprecation).

Commits
-------

a025ee1 Avoid call on null
…alizerErrorRenderer` (nicolas-grekas)

This PR was merged into the 5.4 branch.

Discussion
----------

[ErrorHandler] Fix sending `Vary` header with `SerializerErrorRenderer`

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        | -

This mistake is way too easy to make :)

Commits
-------

0c0d852 [ErrorHandler] Fix sending Vary header with SerializerErrorRenderer
nicolas-grekas and others added 18 commits June 20, 2023 22:57
…ezone is false (bogdanmoza)

This PR was squashed before being merged into the 5.4 branch.

Discussion
----------

[VarDumper] Dumping DateTime throws error if getTimezone is false

| Q             | A
| ------------- | ---
| Branch? | 5.4
| Bug fix? | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | -
| License       | MIT
| Doc PR        |
----
**TL;DR:**
In case you have a DateTime object that returns false when calling `getTimezone()`, an error is thrown in DateCaster.

**Description**
So I have encountered this case when I have tried to dump a mocked DateTime object. The mock will not have a timezone making the `getTimezone()` method return false. I know that this is not really a bug, as a DateTime object not having a DateTimeZone should not be happening, but it is possible in case someone extends the DateTime object and overrides the `getTimezone()` method.
The error thrown is 'The DatetimeInterface object has not been correctly initialized by its constructor'

**How to reproduce**
```
class A extends \DateTime {
    public function getTimezone(): \DateTimeZone|false
    {
        return false;
    }
}
```
Dump the A class will cause an error.

**Final notes**
Even though this a special case, I still think that you should be able to dump a mocked DateTime.
I hope the description and everything is ok as this is my first pr here.

Cheers!

Commits
-------

d6bc7a4 [VarDumper] Dumping DateTime throws error if getTimezone is false
…ut command (ro0NL)

This PR was merged into the 5.4 branch.

Discussion
----------

[FrameworkBundle] Ignore missing directories in about command

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes IMHO
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix #... <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->
<!--
Replace this notice by a short README for your feature/bugfix.
This will help reviewers and should be a good start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - Bug fixes must be submitted against the lowest maintained branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the latest branch.
 - For new features, provide some code snippets to help understand usage.
 - Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
 - Never break backward compatibility (see https://symfony.com/bc).
-->

This fixes our CI when `var/log` is missing.

Before:

```
In AboutCommand.php line 105:

  [UnexpectedValueException]
  RecursiveDirectoryIterator::__construct(/app/var/log): Failed to open directory: No such file or directory
```

After:
```
  Cache directory      ./var/cache/prod (939 KiB)
  Build directory      ./var/cache/prod (939 KiB)
  Log directory        ./var/log (n/a)
```

Commits
-------

6dacc59 [FrameworkBundle] Ignore missing directories in about command
…trategy for re-delivery" (bendavies)

This PR was merged into the 5.4 branch.

Discussion
----------

Revert "Respect isRetryable decision of the retry strategy for re-delivery"

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Reverts symfony#49063
| License       | MIT
| Doc PR        |

Revert "[Messenger] Respect `isRetryable` decision of the retry strategy when deciding if failed message should be re-delivered"

This reverts symfony#49063

The linked PR rendered `RecoverableExceptionInterface` useless - i.e. it would not retry indefinately as stated in the docs.

See the [discussion on the original PR](symfony#49063 (comment))

Commits
-------

dd328a2 Revert "[Messenger] Respect `isRetryable` decision of the retry strategy when deciding if failed message should be re-delivered"
…strings (Daniel Kozák)

This PR was squashed before being merged into the 5.4 branch.

Discussion
----------

[HttpClient] Fix encoding some characters in query strings

| Q             | A
| ------------- | ---
| Branch?       | 5.4 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | Fix symfony#50670 <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License       | MIT
| Doc PR        | symfony/symfony-docs#... <!-- required for new features -->
<!--
Replace this notice by a short README for your feature/bugfix.
This will help reviewers and should be a good start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - Bug fixes must be submitted against the lowest maintained branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the latest branch.
 - For new features, provide some code snippets to help understand usage.
 - Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
 - Never break backward compatibility (see https://symfony.com/bc).
-->

Commits
-------

cb26c19 [HttpClient] Fix encoding some characters in query strings
… Polish language (stloyd)

This PR was squashed before being merged into the 5.4 branch.

Discussion
----------

[Validator] Add missing validator translations in Polish language

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Tickets       | n/a <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License       | MIT
| Doc PR        | n/a <!-- required for new features -->
<!--
Replace this notice by a short README for your feature/bugfix.
This will help reviewers and should be a good start for the documentation.

Additionally (see https://symfony.com/releases):
 - Always add tests and ensure they pass.
 - Bug fixes must be submitted against the lowest maintained branch where they apply
   (lowest branches are regularly merged to upper ones so they get the fixes too).
 - Features and deprecations must be submitted against the latest branch.
 - For new features, provide some code snippets to help understand usage.
 - Changelog entry should follow https://symfony.com/doc/current/contributing/code/conventions.html#writing-a-changelog-entry
 - Never break backward compatibility (see https://symfony.com/bc).
-->
Similar to symfony#50590 but now in Polish language

Commits
-------

eb08ef3 [Validator] Add missing validator translations in Polish language
…colas-grekas)

This PR was merged into the 5.4 branch.

Discussion
----------

[Messenger] Preserve existing Doctrine schema

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | no (fixing a not released bug)
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix symfony#50717
| License       | MIT
| Doc PR        | -

[Inlining](https://github.com/symfony/symfony/pull/50742/files#diff-2a38c9deb498eec50126c297bb3d094c8efb29364934e902d6481761ace6f20a) since Doctrine deprecated "toSaveSql" without providing an alternative.

Cleaning up a few unneeded calls to `ORMSetup::createConfiguration()` also.

Commits
-------

96c227a [Messenger] Preserve existing Doctrine schema
…nicolas-grekas)

This PR was merged into the 5.4 branch.

Discussion
----------

[HttpClient] Explicitly exclude CURLOPT_POSTREDIR

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | no
| New feature?  | no
| Deprecations? | no
| Tickets       | symfony#50520
| License       | MIT
| Doc PR        | -

Commits
-------

c90e20f [HttpClient] Explicitly exclude CURLOPT_POSTREDIR
…-referenced as runtime exceptions (nicolas-grekas)

This PR was merged into the 5.4 branch.

Discussion
----------

[DependencyInjection] Skip errored definitions deep-referenced as runtime exceptions

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Tickets       | Fix symfony#50708
| License       | MIT
| Doc PR        | -

This solves the linked issue by not throwing a compile-time error when the service graph looks like this (when ServiceC has errors):

```
ServiceA ---(runtime-exception-on-invalid-ref)---> ServiceB ---(exception-on-invalid-ref)---> ServiceC
```

Commits
-------

fef31dc [DependencyInjection] Skip errored definitions deep-referenced as runtime exceptions
@nikophil nikophil force-pushed the fix/resolve-event-listener branch 6 times, most recently from 838a2fc to 1339e8d Compare June 26, 2023 07:21
@nikophil nikophil force-pushed the fix/resolve-event-listener branch from 1339e8d to 20ae84e Compare June 26, 2023 07:22
@nikophil nikophil closed this Jun 26, 2023
nikophil pushed a commit that referenced this pull request Jan 31, 2024
…read from socket (xdanik)

This PR was merged into the 5.4 branch.

Discussion
----------

[Mailer] Throw `TransportException` when unable to read from socket

| Q             | A
| ------------- | ---
| Branch?       | 5.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? |no
| Issues        | None
| License       | MIT

We are seeing error `fgets(): SSL: Connection reset by peer` multiple times a day from connection to Office 365 SMTP server (smtp.office365.com:587).
It's certainly related to some kind of timeout as we are sending emails from long running queue dispatcher and error shows up only occasionally and never with the first message. We are not seeing this issue with any other SMTP server, but we have not tested much past smtp.mandrillapp.com and local MailHog.

We have tried adjusting the `$pingThreshold` and `$restartThreshold` options, but without much success (well `$restartThreshold = 1` resolves the issue, but it also forces the transport to close connection after each message).

Stack trace:
```
#0 /var/www/vendor/symfony/mailer/Transport/Smtp/Stream/AbstractStream.php(77): fgets(Resource(stream))
#1 /var/www/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(315): Symfony\Component\Mailer\Transport\Smtp\Stream\AbstractStream->readLine()
#2 /var/www/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(181): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->getFullResponse()
#3 /var/www/vendor/symfony/mailer/Transport/Smtp/SmtpTransport.php(140): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->executeCommand("RSET
", Array(1))
#4 /var/www/vendor/symfony/mailer/Mailer.php(45): Symfony\Component\Mailer\Transport\Smtp\SmtpTransport->send(Object(Symfony\Component\Mime\Email), Null)
#5 (our queue dispatcher): Symfony\Component\Mailer\Mailer->send(Object(Symfony\Component\Mime\Email))
```

App is running on PHP 8.0.28 on Debian Linux x64, Mailer v5.4.22.

I would gladly written some tests for this, but I don't know how to simulate calls to low-level stream functions like fgets.

Commits
-------

44d5b57 [Mailer] Throw TransportException when unable to read from socket
nikophil pushed a commit that referenced this pull request May 6, 2024
…hen publishing a message. (jwage)

This PR was squashed before being merged into the 6.4 branch.

Discussion
----------

[Messenger] [Amqp] Handle AMQPConnectionException when publishing a message.

| Q             | A
| ------------- | ---
| Branch?       | 6.4
| Bug fix?      | yes
| New feature?  | no
| Deprecations? | no
| Issues        | Fix symfony#36538 Fix symfony#48241
| License       | MIT

If you have a message handler that dispatches messages to another queue, you can encounter `AMQPConnectionException` with the message "Library error: a SSL error occurred" or "a socket error occurred"  depending on if you are using tls or not or if you are running behind a load balancer or not.

You can manually reproduce this issue by dispatching a message where the handler then dispatches another message to a different queue, then go to rabbitmq admin and close the connection manually, then dispatch another message and when the message handler goes to dispatch the other message, you will get this exception:

```
a socket error occurred
#0 /vagrant/vendor/symfony/amqp-messenger/Transport/AmqpTransport.php(60): Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpSender->send()
#1 /vagrant/vendor/symfony/messenger/Middleware/SendMessageMiddleware.php(62): Symfony\Component\Messenger\Bridge\Amqp\Transport\AmqpTransport->send()
#2 /vagrant/vendor/symfony/messenger/Middleware/FailedMessageProcessingMiddleware.php(34): Symfony\Component\Messenger\Middleware\SendMessageMiddleware->handle()
#3 /vagrant/vendor/symfony/messenger/Middleware/DispatchAfterCurrentBusMiddleware.php(61): Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware->handle()
#4 /vagrant/vendor/symfony/messenger/Middleware/RejectRedeliveredMessageMiddleware.php(41): Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware->handle()
#5 /vagrant/vendor/symfony/messenger/Middleware/AddBusNameStampMiddleware.php(37): Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware->handle()
symfony#6 /vagrant/vendor/symfony/messenger/Middleware/TraceableMiddleware.php(40): Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware->handle()
symfony#7 /vagrant/vendor/symfony/messenger/MessageBus.php(70): Symfony\Component\Messenger\Middleware\TraceableMiddleware->handle()
symfony#8 /vagrant/vendor/symfony/messenger/TraceableMessageBus.php(38): Symfony\Component\Messenger\MessageBus->dispatch()
symfony#9 /vagrant/src/Messenger/MessageBus.php(37): Symfony\Component\Messenger\TraceableMessageBus->dispatch()
symfony#10 /vagrant/vendor/symfony/mailer/Mailer.php(66): App\Messenger\MessageBus->dispatch()
symfony#11 /vagrant/src/Mailer/Mailer.php(83): Symfony\Component\Mailer\Mailer->send()
symfony#12 /vagrant/src/Mailer/Mailer.php(96): App\Mailer\Mailer->send()
symfony#13 /vagrant/src/MessageHandler/Trading/StrategySubscriptionMessageHandler.php(118): App\Mailer\Mailer->sendEmail()
symfony#14 /vagrant/src/MessageHandler/Trading/StrategySubscriptionMessageHandler.php(72): App\MessageHandler\Trading\StrategySubscriptionMessageHandler->handle()
symfony#15 /vagrant/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(152): App\MessageHandler\Trading\StrategySubscriptionMessageHandler->__invoke()
symfony#16 /vagrant/vendor/symfony/messenger/Middleware/HandleMessageMiddleware.php(91): Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->callHandler()
symfony#17 /vagrant/vendor/symfony/messenger/Middleware/SendMessageMiddleware.php(71): Symfony\Component\Messenger\Middleware\HandleMessageMiddleware->handle()
symfony#18 /vagrant/vendor/symfony/messenger/Middleware/FailedMessageProcessingMiddleware.php(34): Symfony\Component\Messenger\Middleware\SendMessageMiddleware->handle()
symfony#19 /vagrant/vendor/symfony/messenger/Middleware/DispatchAfterCurrentBusMiddleware.php(68): Symfony\Component\Messenger\Middleware\FailedMessageProcessingMiddleware->handle()
symfony#20 /vagrant/vendor/symfony/messenger/Middleware/RejectRedeliveredMessageMiddleware.php(41): Symfony\Component\Messenger\Middleware\DispatchAfterCurrentBusMiddleware->handle()
symfony#21 /vagrant/vendor/symfony/messenger/Middleware/AddBusNameStampMiddleware.php(37): Symfony\Component\Messenger\Middleware\RejectRedeliveredMessageMiddleware->handle()
symfony#22 /vagrant/vendor/symfony/messenger/Middleware/TraceableMiddleware.php(40): Symfony\Component\Messenger\Middleware\AddBusNameStampMiddleware->handle()
symfony#23 /vagrant/vendor/symfony/messenger/MessageBus.php(70): Symfony\Component\Messenger\Middleware\TraceableMiddleware->handle()
symfony#24 /vagrant/vendor/symfony/messenger/TraceableMessageBus.php(38): Symfony\Component\Messenger\MessageBus->dispatch()
symfony#25 /vagrant/vendor/symfony/messenger/RoutableMessageBus.php(54): Symfony\Component\Messenger\TraceableMessageBus->dispatch()
symfony#26 /vagrant/vendor/symfony/messenger/Worker.php(162): Symfony\Component\Messenger\RoutableMessageBus->dispatch()
symfony#27 /vagrant/vendor/symfony/messenger/Worker.php(109): Symfony\Component\Messenger\Worker->handleMessage()
symfony#28 /vagrant/vendor/symfony/messenger/Command/ConsumeMessagesCommand.php(238): Symfony\Component\Messenger\Worker->run()
symfony#29 /vagrant/vendor/symfony/console/Command/Command.php(326): Symfony\Component\Messenger\Command\ConsumeMessagesCommand->execute()
symfony#30 /vagrant/vendor/symfony/console/Application.php(1096): Symfony\Component\Console\Command\Command->run()
symfony#31 /vagrant/vendor/symfony/framework-bundle/Console/Application.php(126): Symfony\Component\Console\Application->doRunCommand()
symfony#32 /vagrant/vendor/symfony/console/Application.php(324): Symfony\Bundle\FrameworkBundle\Console\Application->doRunCommand()
symfony#33 /vagrant/vendor/symfony/framework-bundle/Console/Application.php(80): Symfony\Component\Console\Application->doRun()
symfony#34 /vagrant/vendor/symfony/console/Application.php(175): Symfony\Bundle\FrameworkBundle\Console\Application->doRun()
symfony#35 /vagrant/vendor/symfony/runtime/Runner/Symfony/ConsoleApplicationRunner.php(49): Symfony\Component\Console\Application->run()
symfony#36 /vagrant/vendor/autoload_runtime.php(29): Symfony\Component\Runtime\Runner\Symfony\ConsoleApplicationRunner->run()
symfony#37 /vagrant/bin/console(11): require_once('...')
symfony#38 {main}
```

TODO:

- [x] Add test for retry logic when publishing messages

Commits
-------

f123370 [Messenger] [Amqp] Handle AMQPConnectionException when publishing a message.
nikophil pushed a commit that referenced this pull request Aug 29, 2024
…rsimpsons)

This PR was merged into the 5.4 branch.

Discussion
----------

[Yaml] 🐛 throw ParseException on invalid date

| Q             | A
| ------------- | ---
| Branch?       | 5.4 <!-- see below -->
| Bug fix?      | yes
| New feature?  | no <!-- please update src/**/CHANGELOG.md files -->
| Deprecations? | no <!-- please update UPGRADE-*.md and src/**/CHANGELOG.md files -->
| Issues        | None <!-- prefix each issue number with "Fix #", no need to create an issue if none exists, explain below instead -->
| License       | MIT

(found in symfony-tools/docs-builder#179)

When parsing the following yaml:
```
date: 6418-75-51
```

`symfony/yaml` will throw an exception:
```
$ php main.php
PHP Fatal error:  Uncaught Exception: Failed to parse time string (6418-75-51) at position 6 (5): Unexpected character in /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php:714
Stack trace:
#0 /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php(714): DateTimeImmutable->__construct()
#1 /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php(312): Symfony\Component\Yaml\Inline::evaluateScalar()
#2 /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php(80): Symfony\Component\Yaml\Inline::parseScalar()
#3 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(790): Symfony\Component\Yaml\Inline::parse()
#4 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(341): Symfony\Component\Yaml\Parser->parseValue()
#5 /tmp/symfony-yaml/vendor/symfony/yaml/Parser.php(86): Symfony\Component\Yaml\Parser->doParse()
symfony#6 /tmp/symfony-yaml/vendor/symfony/yaml/Yaml.php(77): Symfony\Component\Yaml\Parser->parse()
symfony#7 /tmp/symfony-yaml/main.php(8): Symfony\Component\Yaml\Yaml::parse()
symfony#8 {main}
  thrown in /tmp/symfony-yaml/vendor/symfony/yaml/Inline.php on line 714
```

This is because the "month" is invalid. Fixing the "month" will trigger about the same issue because the "day" would be invalid.

With the current change it will throw a `ParseException`.

Commits
-------

6d71a7e 🐛 throw ParseException on invalid date
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

0