49 KiB
CHANGELOG
7.3
-
Add
errors.phpandwebhook.phprouting configuration files (use them instead of their XML equivalent)Before:
when@dev: _errors: resource: '@FrameworkBundle/Resources/config/routing/errors.xml' prefix: /_error webhook: resource: '@FrameworkBundle/Resources/config/routing/webhook.xml' prefix: /webhookAfter:
when@dev: _errors: resource: '@FrameworkBundle/Resources/config/routing/errors.php' prefix: /_error webhook: resource: '@FrameworkBundle/Resources/config/routing/webhook.php' prefix: /webhook -
Add support for the ObjectMapper component
-
Add support for assets pre-compression
-
Rename
TranslationUpdateCommandtoTranslationExtractCommand -
Add JsonStreamer services and configuration
-
Add new
framework.property_info.with_constructor_extractoroption to allow enabling or disabling the constructor extractor integration -
Deprecate the
--show-argumentsoption of thecontainer:debugcommand, as arguments are now always shown -
Add autowiring alias for
RateLimiterFactoryInterface -
Add
framework.validation.disable_translationoption -
Add support for signal plain name in the
messenger.stop_worker_on_signalsconfiguration -
Deprecate the
framework.validation.cacheoption -
Add
--methodoption to thedebug:routercommand -
Auto-exclude DI extensions, test cases, entities and messenger messages
-
Add DI alias from
ServicesResetterInterfacetoservices_resetter -
Add
methodsargument in#[IsCsrfTokenValid]attribute -
Allow configuring the logging channel per type of exceptions
-
Enable service argument resolution on classes that use the
#[Route]attribute, the#[AsController]attribute is no longer required -
Deprecate setting the
framework.profiler.collect_serializer_dataconfig option tofalse -
Set
framework.rate_limiter.limiters.*.lock_factorytoautoby default -
Deprecate
RateLimiterFactoryautowiring aliases, useRateLimiterFactoryInterfaceinstead -
Allow configuring compound rate limiters
-
Make
ValidatorCacheWarmerusekernel.build_dirinstead ofcache_dir -
Make
SerializeCacheWarmerusekernel.build_dirinstead ofcache_dir -
Support executing custom workflow validators during container compilation
7.2
- Add support for
--sortoption when extracting translations withtranslation:extractcommand and--forceoption - Add support for setting
headerswithSymfony\Bundle\FrameworkBundle\Controller\TemplateController - Add
--resolve-env-varsoption tolint:containercommand - Derivate
kernel.secretfrom the decryption secret when its env var is not defined - Make the
config/directory optional inMicroKernelTrait, add support for service arguments in the invokable Kernel class, and registerFrameworkBundleby default when thebundles.phpfile is missing - [BC BREAK] The
secrets:decrypt-to-localcommand terminates with a non-zero exit code when a secret could not be read - Deprecate making
cache.appadapter taggable, use thecache.app.taggableadapter instead - Enable
json_decode_detailed_errorsin the default serializer context in debug mode by default whenseld/jsonlintis installed - Register
Symfony\Component\Serializer\NameConverter\SnakeCaseToCamelCaseNameConverteras a service namedserializer.name_converter.snake_case_to_camel_caseif available - Add
framework.csrf_protection.stateless_token_ids,.cookie_name, and.check_headeroptions to use stateless headers/cookies-based CSRF protection - Add
framework.form.csrf_protection.field_attroption - Deprecate
session.sid_lengthandsession.sid_bits_per_characterconfig options - Add the ability to use an existing service as a lock/semaphore resource
- Add support for configuring multiple serializer instances via the configuration
- Add support for
SYMFONY_TRUSTED_PROXIES,SYMFONY_TRUSTED_HEADERS,SYMFONY_TRUST_X_SENDFILE_TYPE_HEADERandSYMFONY_TRUSTED_HOSTSenv vars - Add
--no-filloption totranslation:extractcommand
7.1
- Add
CheckAliasValidityPasstolint:containercommand - Add
private_rangesas a shortcut for private IP address ranges to thetrusted_proxiesoption - Mark classes
ConfigBuilderCacheWarmer,Router,SerializerCacheWarmer,TranslationsCacheWarmer,TranslatorandValidatorCacheWarmerasfinal - Move the Router
cache_dirtokernel.build_dir - Deprecate the
router.cache_dirconfig option - Add
rate_limitertags to rate limiter services - Add
secrets:revealcommand - Add
rate_limiteroption tohttp_client.default_optionsandhttp_client.scoped_clients - Attach the workflow's configuration to the
workflowtag - Add the
allowed_recipientsoption for mailer to allow some users to receive emails even ifrecipientsis defined. - Reset env vars when resetting the container
7.0
- Remove command
translation:update, usetranslation:extractinstead - Make the
http_method_overrideconfig option default tofalse - Remove
AbstractController::renderForm(), userender()instead - Remove the
Symfony\Component\Serializer\Normalizer\ObjectNormalizerandSymfony\Component\Serializer\Normalizer\PropertyNormalizerautowiring aliases, type-hint againstSymfony\Component\Serializer\Normalizer\NormalizerInterfaceor implementNormalizerAwareInterfaceinstead - Remove the
Http\Client\HttpClientservice, usePsr\Http\Client\ClientInterfaceinstead - Remove the integration of Doctrine annotations, use native attributes instead
- Remove
EnableLoggerDebugModePass, use argument$debugof HttpKernel'sLoggerinstead - Remove
AddDebugLogProcessorPass::configureLogger(), use HttpKernel'sDebugLoggerConfiguratorinstead - Make the
framework.handle_all_throwablesconfig option default totrue - Make the
framework.php_errors.logconfig option default totrue - Make the
framework.session.cookie_secureconfig option default toauto - Make the
framework.session.cookie_samesiteconfig option default tolax - Make the
framework.session.handler_iddefault to null ifsave_pathis not set and tosession.handler.native_fileotherwise - Make the
framework.uid.default_uuid_versionconfig option default to7 - Make the
framework.uid.time_based_uuid_versionconfig option default to7 - Make the
framework.validation.email_validation_modeconfig option default tohtml5 - Remove the
framework.validation.enable_annotationsconfig option, useframework.validation.enable_attributesinstead - Remove the
framework.serializer.enable_annotationsconfig option, useframework.serializer.enable_attributesinstead - Remove the
routing.loader.annotationservice, use therouting.loader.attributeservice instead - Remove the
routing.loader.annotation.directoryservice, use therouting.loader.attribute.directoryservice instead - Remove the
routing.loader.annotation.fileservice, use therouting.loader.attribute.fileservice instead - Remove
AnnotatedRouteControllerLoader, useAttributeRouteControllerLoaderinstead - Remove
AddExpressionLanguageProvidersPass, useSymfony\Component\Routing\DependencyInjection\AddExpressionLanguageProvidersPassinstead - Remove
DataCollectorTranslatorPass, useSymfony\Component\Translation\DependencyInjection\DataCollectorTranslatorPassinstead - Remove
LoggingTranslatorPass, useSymfony\Component\Translation\DependencyInjection\LoggingTranslatorPassinstead - Remove
WorkflowGuardListenerPass, useSymfony\Component\Workflow\DependencyInjection\WorkflowGuardListenerPassinstead
6.4
- Add
HttpClientAssertionsTrait - Add
AbstractController::renderBlock()andrenderBlockView() - Add native return type to
Translatorand toApplication::reset() - Deprecate the integration of Doctrine annotations, either uninstall the
doctrine/annotationspackage or disable the integration by settingframework.annotationstofalse - Enable
json_decode_detailed_errorscontext for Serializer by default ifkernel.debugis true and theseld/jsonlintpackage is installed - Add
DomCrawlerAssertionsTrait::assertAnySelectorTextContains(string $selector, string $text) - Add
DomCrawlerAssertionsTrait::assertAnySelectorTextSame(string $selector, string $text) - Add
DomCrawlerAssertionsTrait::assertAnySelectorTextNotContains(string $selector, string $text) - Deprecate
EnableLoggerDebugModePass, use argument$debugof HttpKernel'sLoggerinstead - Deprecate
AddDebugLogProcessorPass::configureLogger(), use HttpKernel'sDebugLoggerConfiguratorinstead - Deprecate not setting the
framework.handle_all_throwablesconfig option; it will default totruein 7.0 - Deprecate not setting the
framework.php_errors.logconfig option; it will default totruein 7.0 - Deprecate not setting the
framework.session.cookie_secureconfig option; it will default toautoin 7.0 - Deprecate not setting the
framework.session.cookie_samesiteconfig option; it will default tolaxin 7.0 - Deprecate not setting either
framework.session.handler_idorsave_pathconfig options;handler_idwill default to null in 7.0 ifsave_pathis not set and tosession.handler.native_fileotherwise - Deprecate not setting the
framework.uid.default_uuid_versionconfig option; it will default to7in 7.0 - Deprecate not setting the
framework.uid.time_based_uuid_versionconfig option; it will default to7in 7.0 - Deprecate not setting the
framework.validation.email_validation_modeconfig option; it will default tohtml5in 7.0 - Deprecate
framework.validation.enable_annotations, useframework.validation.enable_attributesinstead - Deprecate
framework.serializer.enable_annotations, useframework.serializer.enable_attributesinstead - Add
array $tokenAttributes = []optional parameter toKernelBrowser::loginUser() - Add support for relative URLs in BrowserKit's redirect assertion
- Change BrowserKitAssertionsTrait::getClient() to be protected
- Deprecate the
framework.asset_mapper.providerconfig option - Add
--excludeoption to thecache:pool:clearcommand - Add parameters deprecations to the output of
debug:containercommand - Change
framework.asset_mapper.importmap_polyfillfrom a URL to the name of an item in the importmap - Provide
$buildDirwhen runningCacheWarmerto build read-only resources - Add the global
--profileoption to the console to enable profiling commands - Deprecate the
routing.loader.annotationservice, use therouting.loader.attributeservice instead - Deprecate the
routing.loader.annotation.directoryservice, use therouting.loader.attribute.directoryservice instead - Deprecate the
routing.loader.annotation.fileservice, use therouting.loader.attribute.fileservice instead - Deprecate
AnnotatedRouteControllerLoader, useAttributeRouteControllerLoaderinstead - Deprecate
AddExpressionLanguageProvidersPass, useSymfony\Component\Routing\DependencyInjection\AddExpressionLanguageProvidersPassinstead - Deprecate
DataCollectorTranslatorPass, useSymfony\Component\Translation\DependencyInjection\DataCollectorTranslatorPassinstead - Deprecate
LoggingTranslatorPass, useSymfony\Component\Translation\DependencyInjection\LoggingTranslatorPassinstead - Deprecate
WorkflowGuardListenerPass, useSymfony\Component\Workflow\DependencyInjection\WorkflowGuardListenerPassinstead
6.3
- Add
extraoption forhttp_client.default_optionsandhttp_client.scoped_client - Add
DomCrawlerAssertionsTrait::assertSelectorCount(int $count, string $selector) - Allow to avoid
limitdefinition in a RateLimiter configuration when using theno_limitpolicy - Add
--formatoption to thedebug:configcommand - Add support to pass namespace wildcard in
framework.messenger.routing - Deprecate
framework:exceptionstag, unwrap it and replaceframework:exceptiontags'nameattribute byclass - Deprecate the
notifier.logger_notification_listenerservice, use thenotifier.notification_logger_listenerservice instead - Allow setting private services with the test container
- Register alias for argument for workflow services with workflow name only
- Configure the
ErrorHandleronFrameworkBundle::boot() - Allow setting
debug.container.dumptofalseto disable dumping the container to XML - Add
framework.http_cache.skip_response_headersoption - Display warmers duration on debug verbosity for
cache:clearcommand - Add
AbstractController::sendEarlyHints()to send HTTP Early Hints - Add autowiring aliases for
Http\Client\HttpAsyncClient - Deprecate the
Http\Client\HttpClientservice, usePsr\Http\Client\ClientInterfaceinstead - Add
stop_worker_on_signalsconfiguration option tomessengerto define signals which would stop a worker - Add support for
--alloption to clear all cache pools withcache:pool:clearcommand - Add
--show-aliasesoption todebug:routercommand
6.2
- Add
resolve-envoption todebug:configcommand to display actual values of environment variables in dumped configuration - Add
NotificationAssertionsTrait - Add option
framework.handle_all_throwablesto allowSymfony\Component\HttpKernel\HttpKernelto handle all kinds ofThrowable - Make
AbstractController::render()able to deal with forms and deprecaterenderForm() - Deprecate the
Symfony\Component\Serializer\Normalizer\ObjectNormalizerandSymfony\Component\Serializer\Normalizer\PropertyNormalizerautowiring aliases, type-hint againstSymfony\Component\Serializer\Normalizer\NormalizerInterfaceor implementNormalizerAwareInterfaceinstead - Add service usages list to the
debug:containercommand output - Add service and alias deprecation message to
debug:container [<name>]output - Tag all workflows services with
workflow, those with type=workflow are tagged withworkflow.workflow, and those with type=state_machine withworkflow.state_machine - Add
rate_limiterconfiguration option tomessenger.transportto allow rate limited transports using the RateLimiter component - Remove
@internaltag from secret vaults to allow them to be used directly outside the framework bundle and custom vaults to be added - Deprecate
framework.form.legacy_error_messagesconfig node - Add a
framework.router.cache_dirconfiguration option to configure the defaultRoutercache_diroption - Add option
framework.messenger.buses.*.default_middleware.allow_no_sendersto enable throwing when a message doesn't have a sender - Deprecate
AbstractController::renderForm(), userender()instead - Deprecate
FrameworkExtension::registerRateLimiter()
6.1
- Add support for configuring semaphores
- Environment variable
SYMFONY_IDEis read by default whenframework.ideconfig is not set - Load PHP configuration files by default in the
MicroKernelTrait - Add
cache:pool:invalidate-tagscommand - Add
xliffsupport in addition toxlfforXliffFileDumper - Deprecate the
reset_on_messageconfig option. It can be set totrueonly and does nothing now - Add
trust_x_sendfile_type_headeroption - Add support for first-class callable route controller in
MicroKernelTrait - Add tag
routing.condition_serviceto autoconfigure routing condition services - Automatically register kernel methods marked with the
Symfony\Component\Routing\Annotation\Routeattribute or annotation as controllers inMicroKernelTrait - Deprecate not setting the
http_method_overrideconfig option. The default value will change tofalsein 7.0. - Add
framework.profiler.collect_serializer_dataconfig option, set it totrueto enable the serializer data collector and profiler panel
6.0
- Remove the
session.storagealias andsession.storage.*services, use thesession.storage.factoryalias andsession.storage.factory.*services instead - Remove
framework.session.storage_idconfiguration option, use theframework.session.storage_factory_idconfiguration option instead - Remove the
sessionservice and theSessionInterfacealias, use the\Symfony\Component\HttpFoundation\Request::getSession()or the new\Symfony\Component\HttpFoundation\RequestStack::getSession()methods instead - Remove the
session.attribute_bagservice andsession.flash_bagservice - Remove the
lock.RESOURCE_NAMEandlock.RESOURCE_NAME.storeservices and thelock,LockInterface,lock.storeandPersistingStoreInterfacealiases, uselock.RESOURCE_NAME.factory,lock.factoryorLockFactoryinstead - The
form.factory,form.type.file,translator,security.csrf.token_manager,serializer,cache_clearer,filesystemandvalidatorservices are now private - Remove the
output-formatandxliff-versionoptions fromTranslationUpdateCommand - Remove
has(),get(),getDoctrine()n anddispatchMessage()fromAbstractController, use method/constructor injection instead - Make the "framework.router.utf8" configuration option default to
true - Remove the
AdapterInterfaceautowiring alias, useCacheItemPoolInterfaceinstead - Make the
profilerservice private - Remove all other values than "none", "php_array" and "file" for
framework.annotation.cache - Register workflow services as private
- Remove support for passing a
RouteCollectionBuildertoMicroKernelTrait::configureRoutes(), type-hintRoutingConfiguratorinstead - Remove the
cache.adapter.doctrineservice - Remove the
framework.translator.enabled_localesconfig option, useframework.enabled_localesinstead - Make the
framework.messenger.reset_on_messageconfiguration option default totrue
5.4
- Add
set_locale_from_accept_languageconfig option to automatically set the request locale based on theAccept-LanguageHTTP request header and theframework.enabled_localesconfig option - Add
set_content_language_from_localeconfig option to automatically set theContent-LanguageHTTP response header based on the Request locale - Deprecate the
framework.translator.enabled_locales, useframework.enabled_localesinstead - Add autowiring alias for
HttpCache\StoreInterface - Add the ability to enable the profiler using a request query parameter, body parameter or attribute
- Deprecate the
AdapterInterfaceautowiring alias, useCacheItemPoolInterfaceinstead - Deprecate the public
profilerservice to private - Deprecate
get(),has(),getDoctrine(), anddispatchMessage()inAbstractController, use method/constructor injection instead - Deprecate the
cache.adapter.doctrineservice - Add support for resetting container services after each messenger message
- Add
configureContainer(),configureRoutes(),getConfigDir()andgetBundlesPath()toMicroKernelTrait - Add support for configuring log level, and status code by exception class
- Bind the
default_contextparameter onto serializer's encoders and normalizers - Add support for
statusCodedefault parameter when loading a template directly from route using theSymfony\Bundle\FrameworkBundle\Controller\TemplateControllercontroller - Deprecate
translation:updatecommand, usetranslation:extractinstead - Add
PhpStanExtractorsupport for the PropertyInfo component - Add
cache.adapter.doctrine_dbalservice to replacecache.adapter.pdowhen a Doctrine DBAL connection is used.
5.3
- Deprecate the
session.storagealias andsession.storage.*services, use thesession.storage.factoryalias andsession.storage.factory.*services instead - Deprecate the
framework.session.storage_idconfiguration option, use theframework.session.storage_factory_idconfiguration option instead - Deprecate the
sessionservice and theSessionInterfacealias, use theRequest::getSession()or the newRequestStack::getSession()methods instead - Add
AbstractController::renderForm()to render a form and set the appropriate HTTP status code - Add support for configuring PHP error level to log levels
- Add the
dispatcheroption todebug:event-dispatcher - Add the
event_dispatcher.dispatchertag - Add
assertResponseFormatSame()inBrowserKitAssertionsTrait - Add support for configuring UUID factory services
- Add tag
assets.packageto register asset packages - Add support to use a PSR-6 compatible cache for Doctrine annotations
- Deprecate all other values than "none", "php_array" and "file" for
framework.annotation.cache - Add
KernelTestCase::getContainer()as the best way to get a container in tests - Rename the container parameter
profiler_listener.only_master_requeststoprofiler_listener.only_main_requests - Add service
fragment.uri_generatorto generate the URI of a fragment - Deprecate registering workflow services as public
- Deprecate option
--xliff-versionof thetranslation:updatecommand, use e.g.--format=xlf20instead - Deprecate option
--output-formatof thetranslation:updatecommand, use e.g.--format=xlf20instead
5.2.0
- Added
framework.http_cacheconfiguration tree - Added
framework.trusted_proxiesandframework.trusted_headersconfiguration options - Deprecated the public
form.factory,form.type.file,translator,security.csrf.token_manager,serializer,cache_clearer,filesystemandvalidatorservices to private. - Added
TemplateAwareDataCollectorInterfaceandAbstractDataCollectorto simplify custom data collector creation and leverage autoconfiguration - Add
cache.adapter.redis_tag_awaretag to useRedisCacheAwareAdapter - added
framework.http_client.retry_failingconfiguration tree - added
assertCheckboxChecked()andassertCheckboxNotChecked()inWebTestCase - added
assertFormValue()andassertNoFormValue()inWebTestCase - Added "--as-tree=3" option to
translation:updatecommand to dump messages as a tree-like structure. The given value defines the level where to switch to inline YAML - Deprecated the
lock.RESOURCE_NAMEandlock.RESOURCE_NAME.storeservices and thelock,LockInterface,lock.storeandPersistingStoreInterfacealiases, uselock.RESOURCE_NAME.factory,lock.factoryorLockFactoryinstead.
5.1.0
- Removed
--no-backupoption fromtranslation:updatecommand (broken since5.0.0) - Added link to source for controllers registered as named services
- Added link to source on controller on
router:match/debug:router(whenframework.ideis configured) - Added the
framework.router.default_uriconfiguration option to configure the defaultRequestContext - Made
MicroKernelTrait::configureContainer()compatible withContainerConfigurator - Added a new
mailer.message_busoption to configure or disable the message bus to use to send mails. - Added flex-compatible default implementation for
MicroKernelTrait::registerBundles() - Deprecated passing a
RouteCollectionBuildertoMicroKernelTrait::configureRoutes(), type-hintRoutingConfiguratorinstead - The
TemplateControllernow accepts context argument - Deprecated not setting the "framework.router.utf8" configuration option as it will default to
truein Symfony 6.0 - Added tag
routing.expression_language_functionto define functions available in route conditions - Added
debug:container --deprecationsoption to see compile-time deprecations. - Made
BrowserKitAssertionsTraitreport the original error message in case of a failure - Added ability for
config:dump-referenceanddebug:configto dump and debug kernel container extension configuration. - Deprecated
session.attribute_bagservice andsession.flash_bagservice.
5.0.0
- Removed support to load translation resources from the legacy directories
src/Resources/translations/andsrc/Resources/<BundleName>/translations/ - Removed
ControllerNameParser. - Removed
ResolveControllerNameSubscriber - Removed support for
bundle:controller:actionto reference controllers. UseserviceOrFqcn::methodinstead - Removed support for PHP templating, use Twig instead
- Removed
Controller, useAbstractControllerinstead - Removed
Client, useKernelBrowserinstead - Removed
ContainerAwareCommand, use dependency injection instead - Removed the
validation.strict_emailoption, usevalidation.email_validation_modeinstead - Removed the
cache.app.simpleservice and its corresponding PSR-16 autowiring alias - Removed cache-related compiler passes and
RequestDataCollector - Removed the
translator.selectorandsession.save_listenerservices - Removed
SecurityUserValueResolver, useUserValueResolverinstead - Removed
routing.loader.service. - Service route loaders must be tagged with
routing.route_loader. - Added
sluggerservice andSluggerInterfacealias - Removed the
lock.store.flock,lock.store.semaphore,lock.store.memcached.abstractandlock.store.redis.abstractservices. - Removed the
router.cache_class_prefixparameter.
4.4.0
- Added
lint:containercommand to check that services wiring matches type declarations - Added
MailerAssertionsTrait - Deprecated support for
templatingengine inTemplateController, use Twig instead - Deprecated the
$parserargument ofControllerResolver::__construct()andDelegatingLoader::__construct() - Deprecated the
controller_name_converterandresolve_controller_name_subscriberservices - The
ControllerResolverandDelegatingLoaderclasses have been marked asfinal - Added support for configuring chained cache pools
- Deprecated calling
WebTestCase::createClient()while a kernel has been booted, ensure the kernel is shut down before calling the method - Deprecated
routing.loader.service, userouting.loader.containerinstead. - Not tagging service route loaders with
routing.route_loaderhas been deprecated. - Overriding the methods
KernelTestCase::tearDown()andWebTestCase::tearDown()without thevoidreturn-type is deprecated. - Added new
error_controllerconfiguration to handle system exceptions - Added sort option for
translation:updatecommand. - [BC Break] The
framework.messenger.routing.sendersconfig key is not deeply merged anymore. - Added
secrets:*commands to deal with secrets seamlessly. - Made
framework.session.handler_idaccept a DSN - Marked the
RouterDataCollectorclass as@final. - [BC Break] The
framework.messenger.buses.<name>.middlewareconfig key is not deeply merged anymore. - Moved
MailerAssertionsTraitinKernelTestCase
4.3.0
- Deprecated the
framework.templatingoption, configure the Twig bundle instead. - Added
WebTestAssertionsTrait(included by default inWebTestCase) - Renamed
ClienttoKernelBrowser - Not passing the project directory to the constructor of the
AssetsInstallCommandis deprecated. This argument will be mandatory in 5.0. - Deprecated the "Psr\SimpleCache\CacheInterface" / "cache.app.simple" service, use "Symfony\Contracts\Cache\CacheInterface" / "cache.app" instead
- Added the ability to specify a custom
serializeroption for each transport underframework.messenger.transports. - Added the
RegisterLocaleAwareServicesPassand configured theLocaleAwareListener - [BC Break] When using Messenger, the default transport changed from
using Symfony's serializer service to use
PhpSerializer, which uses PHP's nativeserialize()andunserialize()functions. To use the original serialization method, set theframework.messenger.default_serializerconfig option tomessenger.transport.symfony_serializer. Or set theserializeroption under one specifictransport. - [BC Break] The
framework.messenger.serializerconfig key changed toframework.messenger.default_serializer, which holds the string service id andframework.messenger.symfony_serializer, which configures the options if you're using Symfony's serializer. - [BC Break] Removed the
framework.messenger.routing.send_and_handleconfiguration. Instead of setting it to true, configure aSyncTransportand route messages to it. - Added information about deprecated aliases in
debug:autowiring - Added php ini session options
sid_lengthandsid_bits_per_characterto thesessionsection of the configuration - Added support for Translator paths, Twig paths in translation commands.
- Added support for PHP files with translations in translation commands.
- Added support for boolean container parameters within routes.
- Added the
messenger:setup-transportscommand to setup messenger transports - Added a
InMemoryTransportto Messenger. Use it with a DSN starting within-memory://. - Added
framework.property_access.throw_exception_on_invalid_property_pathconfig option. - Added
cache:pool:listcommand to list all available cache pools.
4.2.0
- Added a
AbstractController::addLink()method to add Link headers to the current response - Allowed configuring taggable cache pools via a new
framework.cache.pools.tagsoption (bool|service-id) - Allowed configuring PDO-based cache pools via a new
cache.adapter.pdoabstract service - Deprecated auto-injection of the container in AbstractController instances, register them as service subscribers instead
- Deprecated processing of services tagged
security.expression_language_providerin favor of a newAddExpressionLanguageProvidersPassin SecurityBundle. - Deprecated the
Symfony\Bundle\FrameworkBundle\Controller\Controllerclass in favor ofSymfony\Bundle\FrameworkBundle\Controller\AbstractController. - Enabled autoconfiguration for
Psr\Log\LoggerAwareInterface - Added new "auto" mode for
framework.session.cookie_secureto turn it on when HTTPS is used - Removed the
framework.messenger.encoderandframework.messenger.decoderoptions. Use theframework.messenger.serializer.idoption to replace the Messenger serializer. - Deprecated the
ContainerAwareCommandclass in favor ofSymfony\Component\Console\Command\Command - Made
debug:containeranddebug:autowiringignore backslashes in service ids - Deprecated the
Templating\Helper\TranslatorHelper::transChoice()method, use thetrans()one instead with a%count%parameter - Deprecated
CacheCollectorPass. UseSymfony\Component\Cache\DependencyInjection\CacheCollectorPassinstead. - Deprecated
CachePoolClearerPass. UseSymfony\Component\Cache\DependencyInjection\CachePoolClearerPassinstead. - Deprecated
CachePoolPass. UseSymfony\Component\Cache\DependencyInjection\CachePoolPassinstead. - Deprecated
CachePoolPrunerPass. UseSymfony\Component\Cache\DependencyInjection\CachePoolPrunerPassinstead. - Deprecated support for legacy translations directories
src/Resources/translations/andsrc/Resources/<BundleName>/translations/, usetranslations/instead. - Deprecated support for the legacy directory structure in
translation:updateanddebug:translationcommands.
4.1.0
- Allowed to pass an optional
LoggerInterface $loggerinstance to theRouter - Added a new
parameter_bagservice with related autowiring aliases to access parameters as-a-service - Allowed the
Routerto work with any PSR-11 container - Added option in workflow dump command to label graph with a custom label
- Using a
RouterInterfacethat does not implement theWarmableInterfaceis deprecated. - Warming up a router in
RouterCacheWarmerthat does not implement theWarmableInterfaceis deprecated and will not be supported anymore in 5.0. - The
RequestDataCollectorclass has been deprecated. Use theSymfony\Component\HttpKernel\DataCollector\RequestDataCollectorclass instead. - The
RedirectControllerclass allows for 307/308 HTTP status codes - Deprecated
bundle:controller:actionsyntax to reference controllers. UseserviceOrFqcn::methodinstead whereserviceOrFqcnis either the service ID or the FQCN of the controller. - Deprecated
Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser - The
container.service_locatortag ofServiceLocators is now autoconfigured. - Add the ability to search a route in
debug:router. - Add the ability to use SameSite cookies for sessions.
4.0.0
- The default
typeoption of theframework.workflows.*configuration entries isstate_machine - removed
AddConsoleCommandPass,AddConstraintValidatorsPass,AddValidatorInitializersPass,CompilerDebugDumpPass,ConfigCachePass,ControllerArgumentValueResolverPass,FormPass,PropertyInfoPass,RoutingResolverPass,SerializerPass,ValidateWorkflowsPass - made
Translator::__construct()$defaultLocaleargument required - removed
SessionListener,TestSessionListener - Removed
cache:clearwarmup part along with the--no-optional-warmersoption - Removed core form types services registration when unnecessary
- Removed
framework.serializer.cacheoption andserializer.mapping.cache.apc,serializer.mapping.cache.doctrine.apcservices - Removed
ConstraintValidatorFactory - Removed class parameters related to routing
- Removed absolute template paths support in the template name parser
- Removed support of the
KERNEL_DIRenvironment variable withKernelTestCase::getKernelClass(). - Removed the
KernelTestCase::getPhpUnitXmlDir()andKernelTestCase::getPhpUnitCliConfigArgument()methods. - Removed the "framework.validation.cache" configuration option. Configure the "cache.validator" service under "framework.cache.pools" instead.
- Removed
PhpStringTokenParser, useSymfony\Component\Translation\Extractor\PhpStringTokenParserinstead. - Removed
PhpExtractor, useSymfony\Component\Translation\Extractor\PhpExtractorinstead. - Removed the
use_strict_modesession option, it's is now enabled by default
3.4.0
- Added
translator.default_pathoption and parameter - Session
use_strict_modeis now enabled by default and the corresponding option has been deprecated - Made the
cache:clearcommand to not clear "app" PSR-6 cache pools anymore, but to still clear "system" ones; use thecache:pool:clearcommand to clear "app" pools instead - Always register a minimalist logger that writes in
stderr - Deprecated
profiler.matcheroption - Added support for
EventSubscriberInterfaceonMicroKernelTrait - Removed
doctrine/cachefrom the list of required dependencies incomposer.json - Deprecated
validator.mapping.cache.doctrine.apcservice - The
symfony/stopwatchdependency has been removed, require it viacomposer require symfony/stopwatchin yourdevenvironment. - Deprecated using the
KERNEL_DIRenvironment variable withKernelTestCase::getKernelClass(). - Deprecated the
KernelTestCase::getPhpUnitXmlDir()andKernelTestCase::getPhpUnitCliConfigArgument()methods. - Deprecated
AddCacheClearerPass, use tagged iterator arguments instead. - Deprecated
AddCacheWarmerPass, use tagged iterator arguments instead. - Deprecated
TranslationDumperPass, useSymfony\Component\Translation\DependencyInjection\TranslationDumperPassinstead - Deprecated
TranslationExtractorPass, useSymfony\Component\Translation\DependencyInjection\TranslationExtractorPassinstead - Deprecated
TranslatorPass, useSymfony\Component\Translation\DependencyInjection\TranslatorPassinstead - Added
commandattribute to theconsole.commandtag which takes the command name as value, using it makes the command lazy - Added
cache:pool:prunecommand to allow manual stale cache item pruning of supported PSR-6 and PSR-16 cache pool implementations - Deprecated
Symfony\Bundle\FrameworkBundle\Translation\TranslationLoader, useSymfony\Component\Translation\Reader\TranslationReaderinstead - Deprecated
translation.loaderservice, usetranslation.readerinstead AssetsInstallCommand::__construct()now takes an instance ofSymfony\Component\Filesystem\Filesystemas first argumentCacheClearCommand::__construct()now takes an instance ofSymfony\Component\HttpKernel\CacheClearer\CacheClearerInterfaceas first argumentCachePoolClearCommand::__construct()now takes an instance ofSymfony\Component\HttpKernel\CacheClearer\Psr6CacheCleareras first argumentEventDispatcherDebugCommand::__construct()now takes an instance ofSymfony\Component\EventDispatcher\EventDispatcherInterfaceas first argumentRouterDebugCommand::__construct()now takes an instance ofSymfony\Component\Routing\RouterInterfaceas first argumentRouterMatchCommand::__construct()now takes an instance ofSymfony\Component\Routing\RouterInterfaceas first argumentTranslationDebugCommand::__construct()now takes an instance ofSymfony\Component\Translation\TranslatorInterfaceas first argumentTranslationUpdateCommand::__construct()now takes an instance ofSymfony\Component\Translation\TranslatorInterfaceas first argumentAssetsInstallCommand,CacheClearCommand,CachePoolClearCommand,EventDispatcherDebugCommand,RouterDebugCommand,RouterMatchCommand,TranslationDebugCommand,TranslationUpdateCommand,XliffLintCommandandYamlLintCommandclasses have been marked as final- Added
asset.request_context.base_pathandasset.request_context.secureparameters to provide a default request context in case the stack is empty (similar torouter.request_context.*parameters) - Display environment variables managed by
DotenvinAboutCommand
3.3.0
- Not defining the
typeoption of theframework.workflows.*configuration entries is deprecated. The default value will bestate_machinein Symfony 4.0. - Deprecated the
CompilerDebugDumpPassclass - Deprecated the "framework.trusted_proxies" configuration option and the corresponding "kernel.trusted_proxies" parameter
- Added a new version strategy option called "json_manifest_path"
that allows you to use the
JsonManifestVersionStrategy. - Added
Symfony\Bundle\FrameworkBundle\Controller\AbstractController. It provides the same helpers as theControllerclass, but does not allow accessing the dependency injection container, in order to encourage explicit dependency declarations. - Added support for the
controller.service_argumentstag, for injecting services into controllers' actions - Changed default configuration for
assets/forms/validation/translation/serialization/csrf from
canBeEnabled()tocanBeDisabled()when Flex is used - The server:* commands and their associated router files were moved to WebServerBundle
- Translation related services are not loaded anymore when the
framework.translatoroption is disabled. - Added
GlobalVariables::getToken() - Deprecated
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddConsoleCommandPass. UseSymfony\Component\Console\DependencyInjection\AddConsoleCommandPassinstead. - Added configurable paths for validation files
- Deprecated
SerializerPass, useSymfony\Component\Serializer\DependencyInjection\SerializerPassinstead - Deprecated
FormPass, useSymfony\Component\Form\DependencyInjection\FormPassinstead - Deprecated
SessionListener - Deprecated
TestSessionListener - Deprecated
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ConfigCachePass. Use tagged iterator arguments instead. - Deprecated
PropertyInfoPass, useSymfony\Component\PropertyInfo\DependencyInjection\PropertyInfoPassinstead - Deprecated
ControllerArgumentValueResolverPass. UseSymfony\Component\HttpKernel\DependencyInjection\ControllerArgumentValueResolverPassinstead - Deprecated
RoutingResolverPass, useSymfony\Component\Routing\DependencyInjection\RoutingResolverPassinstead - [BC BREAK] The
server:run,server:start,server:stopandserver:statusconsole commands have been moved to a dedicated bundle. Requiresymfony/web-server-bundlein your composer.json and registerSymfony\Bundle\WebServerBundle\WebServerBundlein your AppKernel to use them. - Added
$defaultLocaleas 3rd argument ofTranslator::__construct()makingTranslatorworks with any PSR-11 container - Added
framework.serializer.mappingconfig option allowing to define custom serialization mapping files and directories - Deprecated
AddValidatorInitializersPass, useSymfony\Component\Validator\DependencyInjection\AddValidatorInitializersPassinstead - Deprecated
AddConstraintValidatorsPass, useSymfony\Component\Validator\DependencyInjection\AddConstraintValidatorsPassinstead - Deprecated
ValidateWorkflowsPass, useSymfony\Component\Workflow\DependencyInjection\ValidateWorkflowsPassinstead - Deprecated
ConstraintValidatorFactory, useSymfony\Component\Validator\ContainerConstraintValidatorFactoryinstead. - Deprecated
PhpStringTokenParser, useSymfony\Component\Translation\Extractor\PhpStringTokenParserinstead. - Deprecated
PhpExtractor, useSymfony\Component\Translation\Extractor\PhpExtractorinstead.
3.2.0
- Removed
doctrine/annotationsfrom the list of required dependencies incomposer.json - Removed
symfony/security-coreandsymfony/security-csrffrom the list of required dependencies incomposer.json - Removed
symfony/templatingfrom the list of required dependencies incomposer.json - Removed
symfony/translationfrom the list of required dependencies incomposer.json - Removed
symfony/assetfrom the list of required dependencies incomposer.json - The
Resources/public/images/*files have been removed. - The
Resources/public/css/*.cssfiles have been removed (they are now inlined in TwigBundle). - Added possibility to prioritize form type extensions with
'priority'attribute on tagsform.type_extension
3.1.0
- Added
Controller::jsonto simplify creating JSON responses when using the Serializer component - Deprecated absolute template paths support in the template name parser
- Deprecated using core form types without dependencies as services
- Added
Symfony\Component\HttpHernel\DataCollector\RequestDataCollector::onKernelResponse() - Added
Symfony\Bundle\FrameworkBundle\DataCollector\RequestDataCollector - The
framework.serializer.cacheoption and the serviceserializer.mapping.cache.apchave been deprecated. APCu should now be automatically used when available.
3.0.0
- removed
validator.apiparameter - removed
aliasoption of theform.typetag
2.8.0
- Deprecated the
aliasoption of theform.type_extensiontag in favor of theextended_type/extended-typeoption - Deprecated the
aliasoption of theform.typetag - Deprecated the Shell
2.7.0
- Added possibility to extract translation messages from a file or files besides extracting from a directory
- Added
TranslationsCacheWarmerto create catalogues at warmup
2.6.0
- Added helper commands (
server:start,server:stopandserver:status) to control the built-in web server in the background - Added
Controller::isCsrfTokenValidhelper - Added configuration for the PropertyAccess component
- Added
Controller::redirectToRoutehelper - Added
Controller::addFlashhelper - Added
Controller::isGrantedhelper - Added
Controller::denyAccessUnlessGrantedhelper - Deprecated
app.securityin twig asapp.userandis_granted()are already available
2.5.0
- Added
translation:debugcommand - Added
--no-backupoption totranslation:updatecommand - Added
config:debugcommand - Added
yaml:lintcommand - Deprecated the
RouterApacheDumperCommandwhich will be removed in Symfony 3.0.
2.4.0
- allowed multiple IP addresses in profiler matcher settings
- added stopwatch helper to time templates with the WebProfilerBundle
- added service definition for "security.secure_random" service
- added service definitions for the new Security CSRF sub-component
2.3.0
- [BC BREAK] added a way to disable the profiler (when disabling the profiler, it is now completely removed)
To get the same "disabled" behavior as before, set
enabledtotrueandcollecttofalse - [BC BREAK] the
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\RegisterKernelListenersPasswas moved toComponent\HttpKernel\DependencyInjection\RegisterListenersPass - added ControllerNameParser::build() which converts a controller short notation (a🅱️c) to a class::method notation
- added possibility to run PHP built-in server in production environment
- added possibility to load the serializer component in the service container
- added route debug information when using the
router:matchcommand - added
TimedPhpEngine - added
--cleanoption to thetranslation:updatecommand - added
http_method_overrideoption - added support for default templates per render tag
- added FormHelper::form(), FormHelper::start() and FormHelper::end()
- deprecated FormHelper::enctype() in favor of FormHelper::start()
- RedirectController actions now receive the Request instance via the method signature.
2.2.0
- added a new
uri_signerservice to help sign URIs - deprecated
Symfony\Bundle\FrameworkBundle\HttpKernel::render()andSymfony\Bundle\FrameworkBundle\HttpKernel::forward() - deprecated the
Symfony\Bundle\FrameworkBundle\HttpKernelclass in favor ofSymfony\Component\HttpKernel\DependencyInjection\ContainerAwareHttpKernel - added support for adding new HTTP content rendering strategies (like ESI and Hinclude)
in the DIC via the
kernel.fragment_renderertag - [BC BREAK] restricted the
Symfony\Bundle\FrameworkBundle\HttpKernel::render()method to only accept URIs or ControllerReference instancesSymfony\Bundle\FrameworkBundle\HttpKernel::render()method signature changed and the first argument must now be a URI or a ControllerReference instance (thegenerateInternalUri()method was removed)- The internal routes (
Resources/config/routing/internal.xml) have been removed and replaced with a listener (Symfony\Component\HttpKernel\EventListener\FragmentListener) - The
rendermethod of theactionstemplating helper signature and arguments changed
- replaced Symfony\Bundle\FrameworkBundle\Controller\TraceableControllerResolver by Symfony\Component\HttpKernel\Controller\TraceableControllerResolver
- replaced Symfony\Component\HttpKernel\Debug\ContainerAwareTraceableEventDispatcher by Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher
- added Client::enableProfiler()
- a new parameter has been added to the DIC:
router.request_context.base_urlYou can customize it for your functional tests or for generating URLs with the right base URL when your are in the CLI context. - added support for default templates per render tag
2.1.0
- moved the translation files to the Form and Validator components
- changed the default extension for XLIFF files from .xliff to .xlf
- moved Symfony\Bundle\FrameworkBundle\ContainerAwareEventDispatcher to Symfony\Component\EventDispatcher\ContainerAwareEventDispatcher
- moved Symfony\Bundle\FrameworkBundle\Debug\TraceableEventDispatcher to Symfony\Component\EventDispatcher\ContainerAwareTraceableEventDispatcher
- added a router:match command
- added a config:dump-reference command
- added a server:run command
- added kernel.event_subscriber tag
- added a way to create relative symlinks when running assets:install command (--relative option)
- added Controller::getUser()
- [BC BREAK] assets_base_urls and base_urls merging strategy has changed
- changed the default profiler storage to use the filesystem instead of SQLite
- added support for placeholders in route defaults and requirements (replaced by the value set in the service container)
- added Filesystem component as a dependency
- added support for hinclude (use
standalone: 'js'in render tag) - session options: lifetime, path, domain, secure, httponly were deprecated. Prefixed versions should now be used instead: cookie_lifetime, cookie_path, cookie_domain, cookie_secure, cookie_httponly
- [BC BREAK] following session options: 'lifetime', 'path', 'domain', 'secure', 'httponly' are now prefixed with cookie_ when dumped to the container
- Added
handler_idconfiguration undersessionkey to representsession.handlerservice, defaults tosession.handler.native_file. - Added
gc_maxlifetime,gc_probability, andgc_divisorto session configuration. This means session garbage collection has agc_probability/gc_divisorchance of being run. Thegc_maxlifetimedefines how long a session can idle for. It is different from cookie lifetime which declares how long a cookie can be stored on the remote client. - Removed 'auto_start' configuration parameter from session config. The session will start on demand.
- [BC BREAK] TemplateNameParser::parseFromFilename() has been moved to a dedicated parser: TemplateFilenameParser::parse().
- [BC BREAK] Kernel parameters are replaced by their value wherever they appear in Route patterns, requirements and defaults. Use '%%' as the escaped value for '%'.
- [BC BREAK] Switched behavior of flash messages to expire flash messages on retrieval using Symfony\Component\HttpFoundation\Session\Flash\FlashBag as opposed to on next pageload regardless of whether they are displayed or not.