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

5.7 KiB

UPGRADE FROM 3.2 to 3.3

ClassLoader

  • The component is deprecated and will be removed in 4.0. Use Composer instead.

Debug

  • The ContextErrorException class is deprecated. \ErrorException will be used instead in 4.0.

DependencyInjection

  • Autowiring-types have been deprecated, use aliases instead.

    Before:

    <service id="annotations.reader" class="Doctrine\Common\Annotations\AnnotationReader" public="false">
        <autowiring-type>Doctrine\Common\Annotations\Reader</autowiring-type>
    </service>
    

    After:

    <service id="annotations.reader" class="Doctrine\Common\Annotations\AnnotationReader" public="false" />
    <service id="Doctrine\Common\Annotations\Reader" alias="annotations.reader" public="false" />
    
  • The Reference and Alias classes do not make service identifiers lowercase anymore.

  • Case insensitivity of service identifiers is deprecated and will be removed in 4.0.

  • Using the PhpDumper with an uncompiled ContainerBuilder is deprecated and will not be supported anymore in 4.0.

  • Extending the containers generated by PhpDumper is deprecated and won't be supported in 4.0.

  • The DefinitionDecorator class is deprecated and will be removed in 4.0, use the ChildDefinition class instead.

  • The strict attribute in service arguments has been deprecated and will be removed in 4.0. The attribute is ignored since 3.0, so you can simply remove it.

EventDispatcher

  • The ContainerAwareEventDispatcher class has been deprecated. Use EventDispatcher with closure-proxy injection instead.

Finder

  • The ExceptionInterface has been deprecated and will be removed in 4.0.

FrameworkBundle

  • The Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddConsoleCommandPass has been deprecated. Use Symfony\Component\Console\DependencyInjection\AddConsoleCommandPass instead.

  • The Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\SerializerPass class has been deprecated and will be removed in 4.0. Use the Symfony\Component\Serializer\DependencyInjection\SerializerPass class instead.

  • The Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\FormPass class has been deprecated and will be removed in 4.0. Use the Symfony\Component\Form\DependencyInjection\FormPass class instead.

  • The Symfony\Bundle\FrameworkBundle\EventListener\SessionListener class has been deprecated and will be removed in 4.0. Use the Symfony\Component\HttpKernel\EventListener\SessionListener class instead.

  • The Symfony\Bundle\FrameworkBundle\EventListener\TestSessionListener class has been deprecated and will be removed in 4.0. Use the Symfony\Component\HttpKernel\EventListener\TestSessionListener class instead.

  • The Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ConfigCachePass class has been deprecated and will be removed in 4.0. Use Symfony\Component\Config\DependencyInjection\ConfigCachePass class instead.

HttpKernel

  • The Psr6CacheClearer::addPool() method has been deprecated. Pass an array of pools indexed by name to the constructor instead.

  • The LazyLoadingFragmentHandler::addRendererService() method has been deprecated and will be removed in 4.0.

Process

  • The ProcessUtils::escapeArgument() method has been deprecated, use a command line array or give env vars to the Process::start/run() method instead.

  • Not inheriting environment variables is deprecated.

  • Configuring proc_open() options is deprecated.

  • Configuring Windows and sigchild compatibility is deprecated - they will be always enabled in 4.0.

  • Extending Process::run(), Process::mustRun() and Process::restart() is deprecated and won't be supported in 4.0.

Security

  • The RoleInterface has been deprecated. Extend the Symfony\Component\Security\Core\Role\Role class in your custom role implementations instead.

SecurityBundle

  • The FirewallContext::getContext() method has been deprecated and will be removed in 4.0. Use the getListeners() method instead.

  • The FirewallMap::$map and $container properties have been deprecated and will be removed in 4.0.

  • The UserPasswordEncoderCommand command expects to be registered as a service and its constructor arguments fully provided. Registering by convention the command or commands extending it is deprecated and will not be allowed anymore in 4.0.

  • UserPasswordEncoderCommand::getContainer() is deprecated, and this class won't extend ContainerAwareCommand nor implement ContainerAwareInterface anymore in 4.0.

  • [BC BREAK] Keys of the users node for in_memory user provider are no longer normalized.

Serializer

  • Extending ChainDecoder, ChainEncoder, ArrayDenormalizer is deprecated and won't be supported in 4.0.

TwigBridge

  • The TwigRendererEngine::setEnvironment() method has been deprecated and will be removed in 4.0. Pass the Twig Environment as second argument of the constructor instead.

TwigBundle

  • The ContainerAwareRuntimeLoader class has been deprecated and will be removed in 4.0. Use the Twig Twig_ContainerRuntimeLoader class instead.

Workflow

  • Deprecated class name support in WorkflowRegistry::add() as second parameter. Wrap the class name in an instance of ClassInstanceSupportStrategy instead.

Yaml

  • Omitting the key of a mapping is deprecated and will throw a ParseException in Symfony 4.0.

  • The constructor arguments $offset, $totalNumberOfLines and $skippedLineNumbers of the Parser class are deprecated and will be removed in 4.0