6.0 KiB
UPGRADE FROM 3.0 to 3.1
DependencyInjection
-
Using unsupported configuration keys in YAML configuration files has been deprecated and will raise an exception in Symfony 4.0.
-
Using unsupported options to configure service aliases has been deprecated and will raise an exception in Symfony 4.0.
Form
-
The
choices_as_values
option of theChoiceType
has been deprecated and will be removed in Symfony 4.0. -
Support for data objects that implements both
Traversable
andArrayAccess
inResizeFormListener::preSubmit
method has been deprecated and will be removed in Symfony 4.0. -
TextType
now implementsDataTransformerInterface
and will always return an empty string whenempty_data
option is explicitly assigned to it. -
Using callable strings as choice options in ChoiceType has been deprecated in favor of
PropertyPath
in Symfony 4.0 use a "\Closure" instead.Before:
'choice_value' => new PropertyPath('range'), 'choice_label' => 'strtoupper',
After:
'choice_value' => 'range', 'choice_label' => function ($choice) { return strtoupper($choice); },
-
Caching of the loaded
ChoiceListInterface
in theLazyChoiceList
has been deprecated, it must be cached in theChoiceLoaderInterface
implementation instead.
FrameworkBundle
-
As it was never an officially supported feature, the support for absolute template paths has been deprecated and will be removed in Symfony 4.0.
-
The abstract
Controller
class now has ajson()
helper method that creates aJsonResponse
. If you have existing controllers extendingController
that contain a method with this name, you need to rename that method to avoid conflicts. -
The following form types registered as services have been deprecated and will be removed in Symfony 4.0; use their fully-qualified class name instead:
"form.type.birthday"
"form.type.checkbox"
"form.type.collection"
"form.type.country"
"form.type.currency"
"form.type.date"
"form.type.datetime"
"form.type.email"
"form.type.file"
"form.type.hidden"
"form.type.integer"
"form.type.language"
"form.type.locale"
"form.type.money"
"form.type.number"
"form.type.password"
"form.type.percent"
"form.type.radio"
"form.type.range"
"form.type.repeated"
"form.type.search"
"form.type.textarea"
"form.type.text"
"form.type.time"
"form.type.timezone"
"form.type.url"
"form.type.button"
"form.type.submit"
"form.type.reset"
-
The
framework.serializer.cache
option and the serviceserializer.mapping.cache.apc
have been deprecated. APCu should now be automatically used when available.
HttpKernel
-
Passing objects as URI attributes to the ESI and SSI renderers has been deprecated and will be removed in Symfony 4.0. The inline fragment renderer should be used with object attributes.
-
The
ControllerResolver::getArguments()
method has been deprecated and will be removed in 4.0. If you have your ownControllerResolverInterface
implementation, you should inject either anArgumentResolverInterface
instance or the newArgumentResolver
in theHttpKernel
.
Serializer
- Passing a Doctrine
Cache
instance to theClassMetadataFactory
has been deprecated and will not be supported in Symfony 4.0. You should use theCacheClassMetadataFactory
class instead.
Translation
- Deprecated the backup feature of the file dumper classes. It will be removed in Symfony 4.0.
Yaml
-
Usage of
%
at the beginning of an unquoted string has been deprecated and will lead to aParseException
in Symfony 4.0. -
The
Dumper::setIndentation()
method is deprecated and will be removed in Symfony 4.0. Pass the indentation level to the constructor instead. -
Deprecated support for passing
true
/false
as the second argument to theparse()
method to trigger exceptions when an invalid type was passed.Before:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', true);
After:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_EXCEPTION_ON_INVALID_TYPE);
-
Deprecated support for passing
true
/false
as the third argument to theparse()
method to toggle object support.Before:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', false, true);
After:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_OBJECT);
-
Deprecated support for passing
true
/false
as the fourth argument to theparse()
method to parse objects as maps.Before:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', false, false, true);
After:
Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_OBJECT_FOR_MAP);
-
Deprecated support for passing
true
/false
as the fourth argument to thedump()
method to trigger exceptions when an invalid type was passed.Before:
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, true);
After:
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, Yaml::DUMP_EXCEPTION_ON_INVALID_TYPE);
-
Deprecated support for passing
true
/false
as the fifth argument to thedump()
method to toggle object support.Before:
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, false, true);
After:
Yaml::dump(array('foo' => new A(), 'bar' => 1), 0, 0, Yaml::DUMP_OBJECT);
-
The
!!php/object
tag to indicate dumped PHP objects has been deprecated and will be removed in Symfony 4.0. Use the!php/object
tag instead.
Validator
- The
DateTimeValidator::PATTERN
constant has been deprecated and will be removed in Symfony 4.0.