Skip to content

Latest commit

 

History

History
229 lines (169 loc) · 6.3 KB

UPGRADE-3.1.md

File metadata and controls

229 lines (169 loc) · 6.3 KB

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 the ChoiceType has been deprecated and will be removed in Symfony 4.0.

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

  • TextType now implements DataTransformerInterface and will always return an empty string when empty_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);
    },

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 a json() helper method that creates a JsonResponse. If you have existing controllers extending Controller 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 service serializer.mapping.cache.apc has been deprecated in favor of serializer.mapping.cache.doctrine.apc to be consistent with the validator cache service. If you are using serializer.mapping.cache.apc, use serializer.mapping.cache.doctrine.apc instead.

  • The framework.serializer.cache option has been deprecated. Configure a cache pool called serializer under framework.cache.pools instead.

    Before:

    framework:
        serializer:
            cache: serializer.mapping.cache.apc

    After:

    framework:
        cache:
            pools:
                serializer:
                    adapter: cache.adapter.apcu
    

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 own ControllerResolverInterface implementation, you should inject either an ArgumentResolverInterface instance or the new ArgumentResolver in the HttpKernel.

Serializer

  • Passing a Doctrine Cache instance to the ClassMetadataFactory has been deprecated and will not be supported in Symfony 4.0. You should use the CacheClassMetadataFactory 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 a ParseException 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 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);
  • Deprecated 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);
  • Deprecated 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);
  • Deprecated 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);
  • Deprecated 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 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.