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
Fabien Potencier 0e4523fc31 feature #20072 [FrameworkBundle] removed the Templating component dependency on FrameworkBundle (fabpot)
This PR was merged into the 3.2-dev branch.

Discussion
----------

[FrameworkBundle] removed the Templating component dependency on FrameworkBundle

| Q             | A
| ------------- | ---
| Branch?       | master
| Bug fix?      | no
| New feature?  | yes
| BC breaks?    | no (except for people using FrameworkBundle without requiring symfony/symfony which should be pretty rare; and fixing this is easy by adding symfony/templating explicitly)
| Deprecations? | no
| Tests pass?   | yes
| Fixed tickets | #15748 partially
| License       | MIT
| Doc PR        | n/a

Another PR to reduce the number of required dependencies on FrameworkBundle. This PR removes the Templating component from the list.

I made most of the work in previous version, so this change is really just about adding a good error message when templating is not enabled. For the record, this is also in the path of making possible to use Symfony with Twig without using the Templating component indirection (I think that this is in fact the last step).

Commits
-------

b3de62f [FrameworkBundle] removed the Templating component dependency on FrameworkBundle
2016-09-28 10:25:38 -07:00

3.8 KiB

UPGRADE FROM 3.1 to 3.2

FrameworkBundle

  • 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

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