Skip to content

Latest commit

 

History

History
157 lines (122 loc) · 4.32 KB

UPGRADE-3.2.md

File metadata and controls

157 lines (122 loc) · 4.32 KB

UPGRADE FROM 3.1 to 3.2

FrameworkBundle

  • The doctrine/annotations dependency has been removed; require it via composer require doctrine/annotations if you are using annotations in your project
  • The symfony/security-core and symfony/security-csrf dependencies have been removed; require them via composer require symfony/security-core symfony/security-csrf if you depend on them and don't already depend on symfony/symfony
  • The symfony/templating dependency has been removed; require it via composer require symfony/templating if you depend on it and don't already depend on symfony/symfony
  • The symfony/translation dependency has been removed; require it via composer require symfony/translation if you depend on it and don't already depend on symfony/symfony
  • The symfony/asset dependency has been removed; require it via composer require symfony/asset if you depend on it and don't already depend on symfony/symfony
  • The Resources/public/images/* files have been removed.
  • The Resources/public/css/*.css files have been removed (they are now inlined in TwigBundle).
  • The Controller::getUser() method has been deprecated and will be removed in Symfony 4.0; typehint the security user object in the action instead.

Console

  • Setting unknown style options is deprecated and will throw an exception in Symfony 4.0.

DependencyInjection

  • Calling get() on a ContainerBuilder instance before compiling the container is deprecated and will throw an exception in Symfony 4.0.

Form

  • Calling isValid() on a Form instance before submitting it is deprecated and will throw an exception in Symfony 4.0.

    Before:

    if ($form->isValid()) {
        // ...
    }

    After:

    if ($form->isSubmitted() && $form->isValid()) {
        // ...
    }

FrameworkBundle

  • The service serializer.mapping.cache.doctrine.apc is deprecated. APCu should now be automatically used when available.

HttpKernel

  • DataCollector::varToString() is deprecated and will be removed in Symfony 4.0. Use the cloneVar() method instead.

HttpFoundation

  • Extending the following methods of Response is deprecated (these methods will be final in 4.0):

    • setDate/getDate
    • setExpires/getExpires
    • setLastModified/getLastModified
    • setProtocolVersion/getProtocolVersion
    • setStatusCode/getStatusCode
    • setCharset/getCharset
    • setPrivate/setPublic
    • getAge
    • getMaxAge/setMaxAge
    • setSharedMaxAge
    • getTtl/setTtl
    • setClientTtl
    • getEtag/setEtag
    • hasVary/getVary/setVary
    • isInvalid/isSuccessful/isRedirection/isClientError/isServerError
    • isOk/isForbidden/isNotFound/isRedirect/isEmpty

TwigBridge

  • Deprecated the possibility to inject the Form Twig Renderer into the form extension. Inject it into the TwigRendererEngine instead.

Validator

  • Tests\Constraints\AbstractConstraintValidatorTest has been deprecated in favor of Test\ConstraintValidatorTestCase.

    Before:

    // ...
    use Symfony\Component\Validator\Tests\Constraints\AbstractConstraintValidatorTest;
    
    class MyCustomValidatorTest extends AbstractConstraintValidatorTest
    {
        // ...
    }

    After:

    // ...
    use Symfony\Component\Validator\Test\ConstraintValidatorTestCase;
    
    class MyCustomValidatorTest extends ConstraintValidatorTestCase
    {
        // ...
    }
  • Setting the strict option of the Choice Constraint to false has been deprecated and the option will be changed to true as of 4.0.

    // ...
    use Symfony\Component\Validator\Constraints as Assert;
    
    class MyEntity
    {
        /**
         * @Assert\Choice(choices={"MR", "MRS"}, strict=true)
         */
        private $salutation;
    }

Yaml

  • Support for silently ignoring duplicate mapping keys in YAML has been deprecated and will lead to a ParseException in Symfony 4.0.

  • Mappings with a colon (:) that is not followed by a whitespace are deprecated and will lead to a ParseException in Symfony 4.0 (e.g. foo:bar must be foo: bar).