- Deprecated
RemoteJsonManifestVersionStrategy, useJsonManifestVersionStrategyinstead
- Deprecate
Helper::strlen(), useHelper::width()instead. - Deprecate
Helper::strlenWithoutDecoration(), useHelper::removeDecoration()instead.
- Deprecate
UserLoaderInterface::loadUserByUsername()in favor ofUserLoaderInterface::loadUserByIdentifier() - Remove
UuidV*Generatorclasses
- Deprecated the
parents()method, useancestors()instead
- Changed
$formsparameter type of theDataMapperInterface::mapDataToForms()method fromiterableto\Traversable - Changed
$formsparameter type of theDataMapperInterface::mapFormsToData()method fromiterableto\Traversable - Deprecated passing an array as the second argument of the
DataMapper::mapDataToForms()method, pass\Traversableinstead - Deprecated passing an array as the first argument of the
DataMapper::mapFormsToData()method, pass\Traversableinstead - Deprecated passing an array as the second argument of the
CheckboxListMapper::mapDataToForms()method, pass\Traversableinstead - Deprecated passing an array as the first argument of the
CheckboxListMapper::mapFormsToData()method, pass\Traversableinstead - Deprecated passing an array as the second argument of the
RadioListMapper::mapDataToForms()method, pass\Traversableinstead - Deprecated passing an array as the first argument of the
RadioListMapper::mapFormsToData()method, pass\Traversableinstead - Dependency on
symfony/intlwas removed. Installsymfony/intlif you are usingLocaleType,CountryType,CurrencyType,LanguageTypeorTimezoneType
- 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 the\Symfony\Component\HttpFoundation\Request::getSession()or the new\Symfony\Component\HttpFoundation\RequestStack::getSession()methods instead - Deprecate the
KernelTestCase::$containerproperty, useKernelTestCase::getContainer()instead - Rename the container parameter
profiler_listener.only_master_requeststoprofiler_listener.only_main_requests - 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
- Deprecate the
NamespacedAttributeBagclass - Deprecate the
RequestStack::getMasterRequest()method and addgetMainRequest()as replacement
- Deprecate
ArgumentInterface - Deprecate
ArgumentMetadata::getAttribute(), usegetAttributes()instead - Mark the class
Symfony\Component\HttpKernel\EventListener\DebugHandlersListeneras internal - Deprecate returning a
ContainerBuilderfromKernelInterface::registerContainerConfiguration() - Deprecate
HttpKernelInterface::MASTER_REQUESTand addHttpKernelInterface::MAIN_REQUESTas replacement - Deprecate
KernelEvent::isMasterRequest()and addisMainRequest()as replacement
- Deprecated the
prefetch_countparameter in the AMQP bridge, it has no effect and will be removed in Symfony 6.0 - Deprecated the use of TLS option for Redis Bridge, use
rediss://127.0.0.1instead ofredis://127.0.0.1?tls=1
- Remove the internal annotation from the
getHeaderBody()andgetHeaderParameter()methods of theHeadersclass.
- Changed the return type of
AbstractTransportFactory::getEndpoint()from?stringtostring - Changed the signature of
Dsn::__construct()to accept a singlestring $dsnargument - Removed the
Dsn::fromString()method
- Deprecated the
SetUpTearDownTraittrait, use original methods with "void" return typehint
- Deprecate passing a boolean as the second argument of
PropertyAccessor::__construct(), pass a combination of bitwise flags instead.
- Deprecated the
Type::getCollectionKeyType()andType::getCollectionValueType()methods, useType::getCollectionKeyTypes()andType::getCollectionValueTypes()instead
- Deprecate creating instances of the
Routeannotation class by passing an array of parameters, use named arguments instead
-
Deprecate using
UsageTrackingTokenStoragewith tracking enabled without a main request. Use the untracked token storage (service ID:security.untracked_token_storage) instead, or disable usage tracking completely usingUsageTrackingTokenStorage::disableUsageTracking(). -
[BC BREAK] Remove method
checkIfCompletelyResolved()fromPassportInterface, checking that passport badges are resolved is up toAuthenticatorManager -
Deprecate class
User, useInMemoryUseror your own implementation instead. If you are using theisAccountNonLocked(),isAccountNonExpired()orisCredentialsNonExpired()method, consider re-implementing them in your own user class, as they are not part of theInMemoryUserAPI -
Deprecate class
UserChecker, useInMemoryUserCheckeror your own implementation instead -
[BC break] Remove support for passing a
UserInterfaceimplementation toPassport, use theUserBadgeinstead. -
Deprecate
UserInterface::getPassword()If yourgetPassword()method does not returnnull(i.e. you are using password-based authentication), you should implementPasswordAuthenticatedUserInterface.Before:
use Symfony\Component\Security\Core\User\UserInterface; class User implements UserInterface { // ... public function getPassword() { return $this->password; } }
After:
use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\PasswordAuthenticatedUserInterface; class User implements UserInterface, PasswordAuthenticatedUserInterface { // ... public function getPassword(): ?string { return $this->password; } }
-
Deprecate
UserInterface::getSalt()If yourgetSalt()method does not returnnull(i.e. you are using password-based authentication with an old password hash algorithm that requires user-provided salts), implementLegacyPasswordAuthenticatedUserInterface.Before:
use Symfony\Component\Security\Core\User\UserInterface; class User implements UserInterface { // ... public function getPassword() { return $this->password; } public function getSalt() { return $this->salt; } }
After:
use Symfony\Component\Security\Core\User\UserInterface; use Symfony\Component\Security\Core\User\LegacyPasswordAuthenticatedUserInterface; class User implements UserInterface, LegacyPasswordAuthenticatedUserInterface { // ... public function getPassword(): ?string { return $this->password; } public function getSalt(): ?string { return $this->salt; } }
-
Deprecate
UserInterface::getUsername()in favor ofUserInterface::getUserIdentifier() -
Deprecate
TokenInterface::getUsername()in favor ofTokenInterface::getUserIdentifier() -
Deprecate
UserProviderInterface::loadUserByUsername()in favor ofUserProviderInterface::loadUserByIdentifier() -
Deprecate
UsernameNotFoundExceptionin favor ofUserNotFoundExceptionandgetUsername()/setUsername()in favor ofgetUserIdentifier()/setUserIdentifier() -
Deprecate
PersistentTokenInterface::getUsername()in favor ofPersistentTokenInterface::getUserIdentifier() -
Deprecate calling
PasswordUpgraderInterface::upgradePassword()with aUserInterfaceinstance that does not implementPasswordAuthenticatedUserInterface -
Deprecate calling methods
hashPassword(),isPasswordValid()andneedsRehash()onUserPasswordHasherInterfacewith aUserInterfaceinstance that does not implementPasswordAuthenticatedUserInterface -
Deprecate all classes in the
Core\Encoder\sub-namespace, use thePasswordHashercomponent instead -
Deprecated voters that do not return a valid decision when calling the
votemethod -
[BC break] Add optional array argument
$badgestoUserAuthenticatorInterface::authenticateUser() -
Deprecate
AuthenticationManagerInterface,AuthenticationProviderManager,AnonymousAuthenticationProvider,AuthenticationProviderInterface,DaoAuthenticationProvider,LdapBindAuthenticationProvider,PreAuthenticatedAuthenticationProvider,RememberMeAuthenticationProvider,UserAuthenticationProviderandAuthenticationFailureEventfrom security-core, use the new authenticator system instead -
Deprecate
AbstractAuthenticationListener,AbstractPreAuthenticatedListener,AnonymousAuthenticationListener,BasicAuthenticationListener,RememberMeListener,RemoteUserAuthenticationListener,UsernamePasswordFormAuthenticationListener,UsernamePasswordJsonAuthenticationListenerandX509AuthenticationListenerfrom security-http, use the new authenticator system instead -
Deprecate the Guard component, use the new authenticator system instead
- [BC break] Add
login_throttling.lock_factorysetting defaulting tonull. Set this option tolock.factoryif you need precise login rate limiting with synchronous requests. - Deprecate
UserPasswordEncoderCommandclass and the correspondinguser:encode-passwordcommand, useUserPasswordHashCommandanduser:hash-passwordinstead - Deprecate the
security.encoder_factory.genericservice, thesecurity.encoder_factoryandSymfony\Component\Security\Core\Encoder\EncoderFactoryInterfacealiases, usesecurity.password_hasher_factoryandSymfony\Component\PasswordHasher\Hasher\PasswordHasherFactoryInterfaceinstead - Deprecate the
security.user_password_encoder.genericservice, thesecurity.password_encoderand theSymfony\Component\Security\Core\Encoder\UserPasswordEncoderInterfacealiases, usesecurity.user_password_hasher,security.password_hasherandSymfony\Component\PasswordHasher\Hasher\UserPasswordHasherInterfaceinstead - Deprecate the public
security.authorization_checkerandsecurity.token_storageservices to private - Not setting the
enable_authenticator_managerconfig option totrueis deprecated - Deprecate the
security.authentication.provider.*services, use the new authenticator system instead - Deprecate the
security.authentication.listener.*services, use the new authenticator system instead - Deprecate the Guard component integration, use the new authenticator system instead
- Deprecate
ArrayDenormalizer::setSerializer(), callsetDenormalizer()instead - Deprecate creating instances of the annotation classes by passing an array of parameters, use named arguments instead
- Replaced
UuidV1::getTime(),UuidV6::getTime()andUlid::getTime()byUuidV1::getDateTime(),UuidV6::getDateTime()andUlid::getDateTime()
- Deprecate
InvalidTokenConfigurationException