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-3.2.md

4.8 KiB

UPGRADE FROM 3.1 to 3.2

BrowserKit

  • Client HTTP user agent has been changed to 'Symfony BrowserKit' (was 'Symfony2 BrowserKit' before).

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).

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.

ExpressionLanguage

  • Passing a ParserCacheInterface instance to the ExpressionLanguage has been deprecated and will not be supported in Symfony 4.0. You should use the CacheItemPoolInterface interface instead.

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.

  • Surrogate name in a Surrogate-Capability HTTP request header has been changed to 'symfony'.

    Before:

    Surrogate-Capability: symfony2="ESI/1.0"
    

    After:

    Surrogate-Capability: symfony="ESI/1.0"
    

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).