- Renamed
Client
toAbstractBrowser
- Marked
Response
final. - Deprecated
Response::buildHeader()
- Deprecated
Response::getStatus()
, useResponse::getStatusCode()
instead
- The
psr/simple-cache
dependency has been removed - runcomposer require psr/simple-cache
if you need it. - Deprecated all PSR-16 adapters, use
Psr16Cache
orSymfony\Contracts\Cache\CacheInterface
implementations instead. - Deprecated
SimpleCacheAdapter
, usePsr16Adapter
instead.
- Deprecated using environment variables with
cannotBeEmpty()
if the value is validated withvalidate()
- Using the
format
option ofDateType
andDateTimeType
when thehtml5
option is enabled is deprecated. - Using names for buttons that do not start with a letter, a digit, or an underscore is deprecated and will lead to an exception in 5.0.
- Using names for buttons that do not contain only letters, digits, underscores, hyphens, and colons is deprecated and will lead to an exception in 5.0.
- Using the
date_format
,date_widget
, andtime_widget
options of theDateTimeType
when thewidget
option is set tosingle_text
is deprecated.
- Not passing the project directory to the constructor of the
AssetsInstallCommand
is 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.
- The
generate()
method of theUrlGenerator
class can return an empty string instead of null.
- The
MimeTypeGuesserInterface
andExtensionGuesserInterface
interfaces have been deprecated, useSymfony\Component\Mime\MimeTypesInterface
instead. - The
MimeType
andMimeTypeExtensionGuesser
classes have been deprecated, useSymfony\Component\Mime\MimeTypes
instead. - The
FileBinaryMimeTypeGuesser
class has been deprecated, useSymfony\Component\Mime\FileBinaryMimeTypeGuesser
instead. - The
FileinfoMimeTypeGuesser
class has been deprecated, useSymfony\Component\Mime\FileinfoMimeTypeGuesser
instead.
- renamed
Client
toHttpKernelBrowser
Amqp
transport does not throw\AMQPException
anymore, catchTransportException
instead.
- The
generator_base_class
,generator_cache_class
,matcher_base_class
, andmatcher_cache_class
router options have been deprecated. - Implementing
Serializable
forRoute
andCompiledRoute
is deprecated; if you serialize them, please ensure your unserialization logic can recover from a failure related to an updated serialization format
-
The
Role
andSwitchUserRole
classes are deprecated and will be removed in 5.0. Use strings for roles instead. -
The
RoleHierarchyInterface
is deprecated and will be removed in 5.0. -
The
getReachableRoles()
method of theRoleHierarchy
class is deprecated and will be removed in 5.0. Use thegetReachableRoleNames()
method instead. -
The
getRoles()
method of theTokenInterface
is deprecated. Tokens must implement thegetRoleNames()
method instead and return roles as strings. -
The
AbstractToken::serialize()
,AbstractToken::unserialize()
,AuthenticationException::serialize()
andAuthenticationException::unserialize()
methods are now final, usegetState()
andsetState()
instead.Before:
public function serialize() { return [$this->myLocalVar, parent::serialize()]; } public function unserialize($serialized) { [$this->myLocalVar, $parentSerialized] = unserialize($serialized); parent::unserialize($parentSerialized); }
After:
protected function getState(): array { return [$this->myLocalVar, parent::getState()]; } protected function setState(array $data) { [$this->myLocalVar, $parentData] = $data; parent::setState($parentData); }
- Using a mapping inside a multi-line string is deprecated and will throw a
ParseException
in 5.0.
-
MarkingStoreInterface::setMarking()
will have a third argument in Symfony 5.0.Before:
class MyMarkingStore implements MarkingStoreInterface { public function setMarking($subject, Marking $marking) { } }
After:
class MyMarkingStore implements MarkingStoreInterface { public function setMarking($subject, Marking $marking , array $context = []) { } }