- The component is deprecated and will be removed in 4.0. Use Composer instead.
-
Input::getOption()
no longer returns the default value for options with value optional explicitly passed empty.For:
protected function configure() { $this // ... ->setName('command') ->addOption('foo', null, InputOption::VALUE_OPTIONAL, '', 'default') ; } protected function execute(InputInterface $input, OutputInterface $output) { var_dump($input->getOption('foo')); }
Before:
$ php console.php command "default" $ php console.php command --foo "default" $ php console.php command --foo "" "default" $ php console.php command --foo= "default"
After:
$ php console.php command "default" $ php console.php command --foo NULL $ php console.php command --foo "" "" $ php console.php command --foo= ""
- The
ContextErrorException
class is deprecated.\ErrorException
will be used instead in 4.0.
-
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
andAlias
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 uncompiledContainerBuilder
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 theChildDefinition
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.
- The
ContainerAwareEventDispatcher
class has been deprecated. UseEventDispatcher
with closure-proxy injection instead.
- The
ExceptionInterface
has been deprecated and will be removed in 4.0.
-
The
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\AddConsoleCommandPass
has been deprecated. UseSymfony\Component\Console\DependencyInjection\AddConsoleCommandPass
instead. -
The
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\SerializerPass
class has been deprecated and will be removed in 4.0. Use theSymfony\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 theSymfony\Component\Form\DependencyInjection\FormPass
class instead. -
The
Symfony\Bundle\FrameworkBundle\EventListener\SessionListener
class has been deprecated and will be removed in 4.0. Use theSymfony\Component\HttpKernel\EventListener\SessionListener
class instead. -
The
Symfony\Bundle\FrameworkBundle\EventListener\TestSessionListener
class has been deprecated and will be removed in 4.0. Use theSymfony\Component\HttpKernel\EventListener\TestSessionListener
class instead. -
The
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ConfigCachePass
class has been deprecated and will be removed in 4.0. UseSymfony\Component\Config\DependencyInjection\ConfigCachePass
class instead. -
The
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\PropertyInfoPass
class has been deprecated and will be removed in 4.0. Use theSymfony\Component\PropertyInfo\DependencyInjection\PropertyInfoPass
class instead. -
The
ConstraintValidatorFactory::$validators
and$container
properties have been deprecated and will be removed in 4.0. -
Extending
ConstraintValidatorFactory
is deprecated and won't be supported in 4.0. -
Class parameters related to routing have been deprecated and will be removed in 4.0.
- router.options.generator_class
- router.options.generator_base_class
- router.options.generator_dumper_class
- router.options.matcher_class
- router.options.matcher_base_class
- router.options.matcher_dumper_class
- router.options.matcher.cache_class
- router.options.generator.cache_class
-
The
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\ControllerArgumentValueResolverPass
class has been deprecated and will be removed in 4.0. Use theSymfony\Component\HttpKernel\DependencyInjection\ControllerArgumentValueResolverPass
class instead. -
The
Symfony\Bundle\FrameworkBundle\DependencyInjection\Compiler\RoutingResolverPass
class has been deprecated and will be removed in 4.0. Use theSymfony\Component\Routing\DependencyInjection\RoutingResolverPass
class instead.
-
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. -
The
X-Status-Code
header method of setting a custom status code in the response when handling exceptions has been removed. There is now a newGetResponseForExceptionEvent::allowCustomResponseCode()
method instead, which will tell the Kernel to use the response code set on the event's response object.
-
The
ProcessUtils::escapeArgument()
method has been deprecated, use a command line array or give env vars to theProcess::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()
andProcess::restart()
is deprecated and won't be supported in 4.0.
- The
RoleInterface
has been deprecated. Extend theSymfony\Component\Security\Core\Role\Role
class in your custom role implementations instead.
-
The
FirewallContext::getContext()
method has been deprecated and will be removed in 4.0. Use thegetListeners()
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 extendContainerAwareCommand
nor implementContainerAwareInterface
anymore in 4.0. -
[BC BREAK] Keys of the
users
node forin_memory
user provider are no longer normalized.
- Extending
ChainDecoder
,ChainEncoder
,ArrayDenormalizer
is deprecated and won't be supported in 4.0.
- 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.
- The
ContainerAwareRuntimeLoader
class has been deprecated and will be removed in 4.0. Use the TwigTwig_ContainerRuntimeLoader
class instead.
- Deprecated class name support in
WorkflowRegistry::add()
as second parameter. Wrap the class name in an instance of ClassInstanceSupportStrategy instead.
-
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 theParser
class are deprecated and will be removed in 4.0