v7.4.0-BETA1
Pre-release
Pre-release
Changelog (v7.3.4...v7.4.0-BETA1)
- feature #62170 [HttpKernel] Add
KernelInterface::getShareDir(),APP_SHARE_DIRandkernel.share_dir(@nicolas-grekas) - feature #59974 [Runtime] Make project_dir configurable (@wickedOne)
- feature #60033 [ErrorHandler][FrameworkBundle] Add support for selecting the appropriate error renderer based on the
APP_RUNTIME_MODE(@yceruto) - feature #62027 [DebugBundle][HttpKernel] Collect dumps when console profiling is enabled (@HypeMC)
- feature #61843 [Messenger] Add
MessageSentToTransportsEvent(@HypeMC) - feature #61880 [JsonStreamer] Merge
PropertyMetadatavalue transformers (@mtarld) - feature #60212 [Form] Add
FormFlowfor multistep forms management (@yceruto) - feature #62135 [Config] Deprecate config builder generators (@nicolas-grekas)
- feature #62129 [FrameworkBundle] Auto-generate
config/reference.phpto assist in writing and discovering app's configuration (@nicolas-grekas) - feature #62069 [JsonStreamer] Add synthetic properties support (@mtarld)
- feature #62092 [Config][DependencyInjection] Deprecate the fluent PHP format for semantic configuration (@nicolas-grekas)
- feature #62090 [Config] Deprecate setting a default value to a node that is required (@GromNaN)
- feature #61984 [Messenger] Add retry delay on amazon sqs transport (@deguif)
- feature #62077 [Security] Add support for
Sec-Fetch-SitetoSameOriginCsrfTokenManager(@nicolas-grekas) - feature #62073 [HttpClient] Add QUERY to the list of retriable HTTP methods (@nicolas-grekas)
- feature #62068 [Console] Add support for
Cursorhelper in invokable commands (@yceruto) - feature #62059 [HttpClient] Add option
auto_upgrade_http_versionto control how the request HTTP version is handled inHttplugClientandPsr18Client(@ajgarlag) - feature #62043 [Security] Allow multiple OIDC discovery endpoints (@ruudk)
- feature #62010 [Routing] Initialize
router.request_context's_localeparameter tokernel.default_locale(@MatTheCat) - feature #62039 [Notifier] Add support for
confirmoption in Slack buttons API (Taras Hinyk) - feature #61949 [HttpFoundation] Deprecate HTTP method override for methods GET, HEAD, CONNECT and TRACE (@nicolas-grekas)
- feature #61979 [HttpFoundation] Add
Request::set/getAllowedHttpMethodOverride()to list which HTTP methods can be overridden (@nicolas-grekas) - feature #61490 [DependencyInjection][Routing] Define array-shapes to help writing PHP configs using yaml-like arrays (@nicolas-grekas)
- feature #61961 [HttpFoundation] Make
Request::createFromGlobals()parse the body of PUT, DELETE, PATCH and QUERY requests (@MatTheCat) - feature #61992 [DoctrineBridge] Deprecate
AbstractDoctrineExtension(@GromNaN) - feature #60660 [Security] Add security:oidc-token:generate command (@Jean-Beru)
- feature #61955 [Messenger] bump ext-redis to 6.2 and ext-relay to 0.12 minimum (@xabbuh)
- feature #61252 [FrameworkBundle] Add support for union types on
#[AsEventListener](@Fan2Shrek) - feature #61748 [Console] Add support for interactive invokable commands with
#[Interact]and#[Ask]attributes (@yceruto) - feature #61952 [Cache] bump ext-relay to 0.12+ (@xabbuh)
- feature #61948 [HttpFoundation] Deprecate Request::get() in favor of using properties ->attributes, query or request directly (@nicolas-grekas)
- feature #61933 [Workflow] Move the dump command to the component (@lyrixx)
- feature #61919 [DependencyInjection] Deprecate
ExtensionInterface::getXsdValidationBasePath()andgetNamespace()(@nicolas-grekas) - feature #60201 [Workflow] Add support for weighted transitions (@lyrixx)
- feature #60568 [DependencyInjection][Routing] Deprecate XML configuration format (@MatTheCat)
- feature #61837 [Form] Add new
active_at,not_active_atandlegal_tenderoptions toCurrencyType(@Crovitche-1623) - feature #61894 [DependencyInjection][Routing] Handle declaring services and routes using PHP arrays that follow the same shape as corresponding yaml files (@nicolas-grekas)
- feature #61860 [Config][DependencyInjection][Routing] Deprecate using
$thisor the internal scope of the loader from PHP config files (@nicolas-grekas) - feature #61885 [DependencyInjection] Handle returning arrays and config-builders from config files (@nicolas-grekas)
- feature #59576 [HttpClient] Make
CachingHttpClientcompatible with RFC 9111 (@Lctrs) - feature #61841 [Validator] deprecate passing an associative array to GroupSequence (@xabbuh)
- feature #61789 [Security] deprecate extending
RememberMeDetailsusing legacy constructor signature (@xabbuh) - feature #61807 [Uid] Add
MockUuidFactoryfor deterministic UUID generation in tests (@momito69) - feature #61838 [Notifier][LOX24] Add Lox24 webhook request parser support (@alebedev80)
- feature #61836 [MonologBridge] Deprecate
NotFoundActivationStrategy(@HypeMC) - feature #61791 [Validator] deprecate implicit constraint option names in YAML/XML mapping files (@xabbuh)
- feature #61778 [Notifier] Add support for building SmsEvent by dlr_code and RemoteEvent for other LOX24 webhook event types (@alebedev80)
- feature #61820 [HttpKernel][WebProfilerBundle] Display runner class in the profiler toolbar (@MatTheCat)
- feature #60902 [TwigBridgeRessources] add aria-invalid and aria-describedby on form inputs when validation failure exist (@jeanfrancois-morin)
- feature #59955 [MonologBridge] Add ability to react to console input being interactive or not (@dkarlovi)
- feature #61812 [Uid] Default to
UuidV7when usingUuidFactory(@nicolas-grekas) - feature #60237 [DoctrineBridge] Add new
DayPointTypeandTimePointTypeDoctrine type (@wkania) - feature #60085 [Security] improve VoteObject adding extraData for give more possibilities to AccessDecicsionStrategy (@eltharin)
- feature #51273 [Config] Add
ArrayNodeDefinition::acceptAndWrap()to list alternative types that should be accepted and wrapped in an array (@nicolas-grekas) - feature #60561 [Validator] Add option to allow
ANYprotocol inAssert\Urlconstraint (@alekLexis) - feature #61775 [Mailer][Mandrill] Add
subaccountto the payload (@andrehoong-pixieset) - feature #61777 [Notifier][Twilio] WhatsApp number validation (@OvidiuGi)
- feature #60023 [Lock] Add
LockKeyNormalizer(@valtzu) - feature #46257 [Messenger] Add AMQP exchange to exchange bindings (@Samik081)
- feature #60228 [Serializer] Support preserving array keys with
XmlEncoder(Maximilian Ruta) - feature #61765 [TypeInfo] Add result cache to
TypeContextFactory(@landure) - feature #60114 [Workflow] Add support for
BackedEnuminMethodMarkingStore(@tucksaun) - feature #61758 [Mailer][Sendgrid] Add support for
globalregion (@sonnymilton) - feature #61743 [Security] deprecate the FQCN properties of
PersistentTokenandRememberMeDetails(@xabbuh) - feature #60204 [FrameworkBundle] Add support for configuring workflow places with glob patterns matching consts/backed enums (@lyrixx)
- feature #60395 [HttpFoundation] Add
#[IsSignatureValid]attribute (@santysisi) - feature #61110 [FrameworkBundle] Prepare session in functionnal tests (@cyve)
- feature #61718 [Config] Add argument
$singulartoNodeBuilder::arrayNode()to decouple plurals/singulars from XML (@nicolas-grekas) - feature #60138 [Lock] DynamoDB store (@natepage)
- feature #61092 [Console][QuestionHelper] add optional timeout for human interaction (@janedbal)
- feature #54366 [Messenger] Introduce
DefaultStampsProviderInterface(@VincentLanglet) - feature #61694 [Security] Add
$tokenSourceargument to#[IsCsrfTokenValid]to support reading tokens from the query string or headers (@webda2l) - feature #61563 [Serializer] Add
#[ExtendsSerializationFor]to declare new serialization attributes for a class (@nicolas-grekas) - feature #61545 [Validator] Add
#[ExtendsValidationFor]to declare new constraints for a class (@nicolas-grekas) - feature #61311 [WebProfilerBundle] Show
EventSourcerequests in debug toolbar (@valtzu) - feature #61654 [Security] Deprecate
PersistentToken::getClass()andRememberMeDetails::getUserFqcn()in order to remove the user FQCN from the remember-me cookie in 8.0 (@nicolas-grekas) - feature #58070 [VarDumper] Select HtmlDumper only if
Acceptheader contains "html" (@alexandre-daubois) - feature #61478 [Console] Add
#[Input]attribute to support DTOs in invokable commands (@yceruto) - feature #61034 [Security][SecurityBundle] Dump role hierarchy as mermaid chart (@damienfern)
- feature #61656 [DependencyInjection] Allow
Class::function(...)andglobal_function(...)closures in PHP DSL for factories (@GromNaN) - feature #61657 [VarExporter] Add support for exporting named closures (@nicolas-grekas)
- feature #61532 [Serializer] Allow using attributes to declare compile-time serialization metadata (@nicolas-grekas)
- feature #61528 [Validator] Allow using attributes to declare compile-time constraint metadata (@nicolas-grekas)
- feature #61379 [Security][TwigBridge] Add
access_decision()andaccess_decision_for_user()(@florentdestremau) - feature #59042 [Validator] Add
Videoconstraint for validating video files (@symfonyaml) - feature #61575 [DependencyInjection] Allow multiple
#[AsDecorator]attributes (@Jean-Beru) - feature #61592 [Runtime] Expose the runtime class in
$_SERVER['APP_RUNTIME'](@nicolas-grekas) - feature #61578 [DependencyInjection] Parse attributes found on abstract classes for resource definitions (@nicolas-grekas)
- feature #61564 [Serializer][Validator] Add JSON schema for validating and autocompleting YAML config files (@nicolas-grekas)
- feature #61536 [DependencyInjection] Allow adding resource tags using any config formats (@nicolas-grekas)
- feature #61297 [Form] Add form type guesser for
EnumType(@mttsch) - feature #61555 [Mailer][Sweego] Add support for new webhook events (@welcoMattic)
- feature #61431 [Intl] Add methods to filter currencies more precisely (@Crovitche-1623)
- feature #61542 [Security] Allow subclassing
#[IsGranted](@nicolas-grekas) - feature #61497 [ObjectMapper] cache attributes in memory (@soyuka)
- feature #61522 [Runtime] Support runtime options as a string (@VincentLanglet)
- feature #59780 [FrameworkBundle] Only show relevant columns in
debug:routercall and adding colors (@mamazu) - feature #61057 [Security] Improve performance of
RoleHierarchy::buildRoleMapmethod (@simonjamain-gp, @simonjamain) - feature #60979 [Messenger] Add
--exclude-receiverstomessenger:consumecommand (@jbdelhommeau) - feature #60442 [ObjectMapper] embed collection transformer (@soyuka)
- feature #61504 [SecurityHttp] Removes final keyword from IsGranted attribute (@crtl)
- feature #61500 [JsonPath][JsonStreamer][ObjectMapper] the components are no longer experimental (@xabbuh)
- feature #61492 [FrameworkBundle][Routing] Auto-register routes from attributes found on controller services (@nicolas-grekas)
- feature #61282 [DependencyInjection][Routing] Add JSON schema for validating and autocompleting YAML config files (@nicolas-grekas)
- feature #61078 [Console] Add getter for the original command "code" object (@weitzman)
- feature #61078 [Console] Add getter for the original command "code" object (@weitzman)
- feature #61480 [TypeInfo] Add extra type alias support (@mtarld)
- feature #61487 [Routing][Serializer] Deprecate annotation aliases and getters and setters in favor of public properties on attributes (@nicolas-grekas)
- feature #61475 [DomCrawler] Use the native HTML5 parser on PHP 8.4 (@nicolas-grekas)
- feature #60120 [Routing] Add possibility to create a request context with parameters directly (@alexander-schranz)
- feature #61455 [Mailer][Sendgrid] Add suppression groups support (@KiloSierraCharlie)
- feature #61267 [HttpFoundation] Add support for structured MIME suffix (@Spomky)
- feature #61358 [Routing] allow setting multiple envs in
#[Route]attribute (@santysisi) - feature #61359 [Security] Add
$methodssupport to#[IsGranted]to restrict access by HTTP method (@santysisi) - feature #60218 [Notifier][Discord] Add
DiscordBotTransport(@norkunas) - feature #61444 [Notifier][Telegram] Add TelegramOptions::messageThreadId() (@MKC-MKC)
- feature #61315 [Mailer] Add compatibility for Mailtrap's sandbox (@KiloSierraCharlie)
- feature #61173 [HttpFoundation][HttpKernel][WebProfilerBundle] Add support for the
QUERYHTTP method (@alexandre-daubois) - feature #61423 [Mime] Deprecate implementing
__sleep/wakeup()onAbstractPartimplementations (@nicolas-grekas) - feature #61418 [Validator] Deprecate implementing
__sleep/wakeup()on GenericMetadata implementations (@nicolas-grekas) - feature #61417 [String] Deprecate implementing
__sleep/wakeup()on string implementations (@nicolas-grekas) - feature #61412 [HttpKernel] Deprecate
__sleep/wakeup()on kernels and data collectors and makeProfilefinal (@nicolas-grekas) - feature #61413 [Serializer] Make
AttributeMetadataandClassMetadatafinal (@nicolas-grekas) - feature #61366 [HtmlSanitizer] Use the native HTML5 parser when using PHP 8.4+ (@nicolas-grekas)
- feature #61290 [Mailer] Add MicrosoftGraph API Transport (@bobvandevijver)
- feature #60754 [Messenger] Allow SQS to handle its own retry/DLQ (@maxbaldanza)
- feature #61308 [Console] Adding more helpful error messages to the Questionhelper (@mamazu)
- feature #61270 [DependencyInjection] Deprecate registering a service without a class when its id is a non-existing FQCN (@nicolas-grekas)
- feature #61255 [Validator] deprecate passing choices as
$optionsargument toChoiceconstraint (@xabbuh) - feature #60355 [Serializer] Add
CDATA_WRAPPING_NAME_PATTERNsupport toXmlEncoder(Maximilian Ruta) - feature #60955 [BrowserKit] Add PHPUnit constraints:
BrowserHistoryIsOnFirstPageandBrowserHistoryIsOnLastPage(@santysisi) - feature #60805 [Validator] Add
minandmaxin both error messages ofLengthValidator(@VincentLanglet) - feature #61133 [AssetMapper] Add support for loading JSON using import statements (@nicolas-grekas)
- feature #61204 [Security] Support union type for
#[CurrentUser]attribute (@VincentLanglet) - feature #60730 [JsonStreamer] Add
include_null_propertiesoption (@mtarld) - feature #61006 [JsonStreamer] Provide current object to value transformers (@mtarld)
- feature #60935 [Translation] Add
StaticMessage(@VincentLanglet) - feature #61145 [ObjectMapper] Add
ObjectMapperAwareInterfaceto set the owning object mapper instance (@soyuka) - feature #61109 [Translation] Deprecate
TranslatableMessage::__toString(@VincentLanglet) - feature #61023 [Serializer] add
canto the accessor prefixes recognized by theAttributeLoader(Mark Schmale) - feature #61127 [Cache] Add
TagAwareAdapterInterfacetoNullAdapter(@a.dmitryuk) - feature #61108 [DoctrineBridge][Validator] mark getRequiredOptions()/getDefaultOption() of UniqueEntity as deprecated (@xabbuh)
- feature #60801 [Validator] deprecate handling options in the base Constraint class (@xabbuh)
- feature #60110 [Mailer] [Transport] Allow exception logging for
RoundRobinTransportmailer (@jnoordsij) - feature #61024 [Intl] Optionally allow Kosovo as a component region (@llupa)
- feature #61046 [SecurityBundle] configuration for the storage service for the login throttling rate limiter (@xabbuh)
- feature #60999 [Messenger] Allow any
ServiceResetterInterfaceimplementation inResetServicesListener(@santysisi) - feature #60480 [VarDumper] Add support for adding more default casters to
AbstractCloner::addDefaultCasters()(@lyrixx) - feature #60895 [BrowserKit] Add
isFirstPage()andisLastPage()methods to History (@santysisi) - feature #60857 [FrameworkBundle] Add
ControllerHelper; the helpers fromAbstractControlleras a standalone service (@nicolas-grekas) - feature #60898 [Uid] Add microsecond precision to UUIDv7 and optimize on x64 (@nicolas-grekas)
- feature #60910 [DependencyInjection] Add argument
$targettoContainerBuilder::registerAliasForArgument()(@nicolas-grekas) - feature #60597 [DependencyInjection][FrameworkBundle] Use php-serialize to dump the container for debug/lint commands (@nicolas-grekas)
- feature #60874 [FrameworkBundle] Allow using their name without added suffix when using #[Target] for custom services (@Valmonzo)
- feature #60614 [Security] Deprecate callable firewall listeners (@MatTheCat)
- feature #60876 [HttpFoundation] Deprecate using
Request::sendHeaders()after headers have already been sent (@nicolas-grekas) - feature #60823 [Console] Add support for Invokable Commands in
CommandTester(@ruudk) - feature #60503 [Runtime] Automatically use FrankenPHP runner when its worker mode is detected (@alexandre-daubois)
- feature #60788 [FrameworkBundle] Allow to un-verbose all the method in
BrowserKitAssertionsTrait(@VincentLanglet) - feature #60819 [DependencyInjection] Allow extending
#[AsAlias]attribute (@ruudk) - feature #60740 [Mailer] Add
assertEmailAddressNotContains(@santysisi) - feature #60767 [Console] Allow Usages to be specified via #[AsCommand] attribute (@weitzman)
- feature #60586 [Console] Support
BackedEnumin invokable commands (@GromNaN) - feature #60371 [SecurityBundle] register alias for argument for password hasher (@lyrixx, @chalasr)
- feature #60394 [Console][FrameworkBundle] Simplify using invokable commands when the component is used standalone (@HypeMC)
- feature #60731 [JsonStreamer] Add PHPDoc to generated code (@mtarld)
- feature #60739 [Console] Allow setting aliases & hidden via command name passed to the constructor (@HypeMC)
- feature #60424 [PhpUnitBridge] Add
strtotime()toClockMock(@jprivet-dev) - feature #60508 [Routing] Allow query-specific parameters in
UrlGeneratorusing_query(@BenMorel) - feature #60704 [HttpClient] Deprecate using amphp/http-client < 5 (@nicolas-grekas)
- feature #60253 [Scheduler] Throw error on duplicate schedule provider service registration on the schedule name (@adrianrudnik)
- feature #60315 [Form] Add
input=date_pointtoDateTimeType,DateTypeandTimeType(@wkania) - feature #60498 [HttpCache] Add a
waitingtrace when finding the cache locked (@mpdude) - feature #60569 [HttpKernel] Do not superseed private cache-control when no-store is set (@alexander-schranz)
- feature #60209 [Notifier] Allow to set block_id/value for SlackActionsBlock and SlackButtonBlockElement (@miloszowi)
- feature #60544 [JsonStreamer] Remove
nikic/php-parserdependency (@mtarld) - feature #60420 [WebLink] Add class to parse Link headers from HTTP responses (@GromNaN)
[PR] #62172