This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/UPGRADE-4.0.md

4.9 KiB

UPGRADE FROM 3.x to 4.0

DependencyInjection

  • Using unsupported configuration keys in YAML configuration files raises an exception.

  • Using unsupported options to configure service aliases raises an exception.

Form

  • The choices_as_values option of the ChoiceType has been removed.

  • Support for data objects that implements both Traversable and ArrayAccess in ResizeFormListener::preSubmit method has been removed.

  • Using callable strings as choice options in ChoiceType is not supported anymore in favor of passing PropertyPath instances.

    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 the LazyChoiceList has been removed, it must be cached in the ChoiceLoaderInterface implementation instead.

FrameworkBundle

  • Support for absolute template paths has been removed.

  • The following form types registered as services have been removed; 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 service serializer.mapping.cache.apc have been removed. APCu should now be automatically used when available.

HttpKernel

  • Possibility to pass non-scalar values as URI attributes to the ESI and SSI renderers has been removed. The inline fragment renderer should be used with non-scalar attributes.

  • The ControllerResolver::getArguments() method has been removed. If you have your own ControllerResolverInterface implementation, you should inject an ArgumentResolverInterface instance.

Serializer

  • The ability to pass a Doctrine Cache instance to the ClassMetadataFactory class has been removed. You should use the CacheClassMetadataFactory class instead.

Translation

  • Removed the backup feature from the file dumper classes.

Yaml

  • Starting an unquoted string with % leads to a ParseException.

  • The Dumper::setIndentation() method was removed. Pass the indentation level to the constructor instead.

  • Removed support for passing true/false as the second argument to the parse() 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);
    
  • Removed support for passing true/false as the third argument to the parse() method to toggle object support.

    Before:

    Yaml::parse('{ "foo": "bar", "fiz": "cat" }', false, true);
    

    After:

    Yaml::parse('{ "foo": "bar", "fiz": "cat" }', Yaml::PARSE_OBJECT);
    
  • Removed support for passing true/false as the fourth argument to the parse() 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);
    
  • Removed support for passing true/false as the fourth argument to the dump() 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);
    
  • Removed support for passing true/false as the fifth argument to the dump() 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, false, Yaml::DUMP_OBJECT);
    
  • The !!php/object tag to indicate dumped PHP objects was removed in favor of the !php/object tag.

Validator

  • The DateTimeValidator::PATTERN constant was removed.