-
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.
-
The
choices_as_valuesoption of theChoiceTypehas been deprecated and will be removed in Symfony 4.0. -
Support for data objects that implements both
TraversableandArrayAccessinResizeFormListener::preSubmitmethod has been deprecated and will be removed in Symfony 4.0. -
TextTypenow implementsDataTransformerInterfaceand will always return an empty string whenempty_dataoption is explicitly assigned to it. -
Using callable strings as choice options in ChoiceType has been deprecated in favor of
PropertyPathin 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
ChoiceListInterfacein theLazyChoiceListhas been deprecated, it must be cached in theChoiceLoaderInterfaceimplementation instead.
-
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
Controllerclass now has ajson()helper method that creates aJsonResponse. If you have existing controllers extendingControllerthat 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.cacheoption and the serviceserializer.mapping.cache.apchave been deprecated. APCu should now be automatically used when available.
-
Passing non-scalar values 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 non-scalar attributes.
-
The
ControllerResolver::getArguments()method has been deprecated and will be removed in 4.0. If you have your ownControllerResolverInterfaceimplementation, you should inject either anArgumentResolverInterfaceinstance or the newArgumentResolverin theHttpKernel.
-
Passing a Doctrine
Cacheinstance to theClassMetadataFactoryhas been deprecated and will not be supported in Symfony 4.0. You should use theCacheClassMetadataFactoryclass instead. -
The
AbstractObjectNormalizer::isAttributeToNormalize()method has been removed because it was initially added by mistake, has never been used and is not tested nor documented.
- Deprecated the backup feature of the file dumper classes. It will be removed in Symfony 4.0.
-
Usage of
%at the beginning of an unquoted string has been deprecated and will lead to aParseExceptionin 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/falseas 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/falseas 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/falseas 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/falseas 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/falseas 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/objecttag to indicate dumped PHP objects has been deprecated and will be removed in Symfony 4.0. Use the!php/objecttag instead.
- The
DateTimeValidator::PATTERNconstant has been deprecated and will be removed in Symfony 4.0.