Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
265 lines (208 loc) · 8.46 KB

File metadata and controls

265 lines (208 loc) · 8.46 KB
Copy raw file
Download raw file
Outline
Edit and raw actions

UPGRADE FROM 6.2 to 6.3

Cache

  • DoctrineDbalAdapter now takes an optional $isSameDatabase parameter

Console

  • Return int or false from SignalableCommandInterface::handleSignal() instead of void and add a second argument $previousExitCode

DependencyInjection

  • Deprecate PhpDumper options inline_factories_parameter and inline_class_loader_parameter, use inline_factories and inline_class_loader instead
  • Deprecate undefined and numeric keys with service_locator config, use string aliases instead
  • Deprecate #[MapDecorated], use #[AutowireDecorated] instead
  • Deprecate the @required annotation, use the Symfony\Contracts\Service\Attribute\Required attribute instead

DoctrineBridge

  • Deprecate passing Doctrine subscribers to ContainerAwareEventManager class, use listeners instead

    Before

    use Doctrine\Bundle\DoctrineBundle\EventSubscriber\EventSubscriberInterface;
    use Doctrine\ORM\Event\PostFlushEventArgs;
    use Doctrine\ORM\Events;
    
    class InvalidateCacheSubscriber implements EventSubscriberInterface
    {
         public function getSubscribedEvents(): array
         {
             return [Events::postFlush];
         }
    
         public function postFlush(PostFlushEventArgs $args): void
         {
             // ...
         }
    }

    After

    use Doctrine\Bundle\DoctrineBundle\Attribute\AsDoctrineListener;
    use Doctrine\ORM\Event\PostFlushEventArgs;
    use Doctrine\ORM\Events;
    
    // Instead of PHP attributes, you can also tag this service with "doctrine.event_listener"
    #[AsDoctrineListener(event: Events::postFlush)]
    class InvalidateCacheSubscriber
    {
         public function postFlush(PostFlushEventArgs $args): void
         {
             // ...
         }
    }
  • Deprecate DoctrineDbalCacheAdapterSchemaSubscriber in favor of DoctrineDbalCacheAdapterSchemaListener

  • Deprecate MessengerTransportDoctrineSchemaSubscriber in favor of MessengerTransportDoctrineSchemaListener

  • Deprecate RememberMeTokenProviderDoctrineSchemaSubscriber in favor of RememberMeTokenProviderDoctrineSchemaListener

  • DoctrineTransport now takes an optional $isSameDatabase parameter

  • DoctrineTokenProvider now takes an optional $isSameDatabase parameter

Form

  • Deprecate not configuring the "widget" option of date/time form types, it will default to "single_text" in v7

FrameworkBundle

  • Deprecate framework:exceptions tag, unwrap it and replace framework:exception tags' name attribute by class

    Before:

    <!-- config/packages/framework.xml -->
    <framework:config>
        <framework:exceptions>
            <framework:exception
                name="Symfony\Component\HttpKernel\Exception\BadRequestHttpException"
                log-level="info"
                status-code="422"
            />
        </framework:exceptions>
    </framework:config>

    After:

    <!-- config/packages/framework.xml -->
    <framework:config>
        <framework:exception
            class="Symfony\Component\HttpKernel\Exception\BadRequestHttpException"
            log-level="info"
            status-code="422"
        />
    </framework:config>
  • Deprecate the notifier.logger_notification_listener service, use the notifier.notification_logger_listener service instead

  • Deprecate the Http\Client\HttpClient service, use Psr\Http\Client\ClientInterface instead

HttpClient

  • The minimum TLS version now defaults to v1.2; use the crypto_method option if you need to connect to servers that don't support it
  • The default user agents have been renamed from Symfony HttpClient/Amp, Symfony HttpClient/Curl and Symfony HttpClient/Native to Symfony HttpClient (Amp), Symfony HttpClient (Curl) and Symfony HttpClient (Native) respectively to comply with the RFC 9110 specification

HttpFoundation

  • Response::sendHeaders() now takes an optional $statusCode parameter
  • Deprecate conversion of invalid values in ParameterBag::getInt() and ParameterBag::getBoolean()
  • Deprecate ignoring invalid values when using ParameterBag::filter(), unless flag FILTER_NULL_ON_FAILURE is set

HttpKernel

  • Deprecate parameters container.dumper.inline_factories and container.dumper.inline_class_loader, use .container.dumper.inline_factories and .container.dumper.inline_class_loader instead

Lock

  • Deprecate the gcProbablity option to fix a typo in its name, use the gcProbability option instead
  • Add optional parameter $isSameDatabase to DoctrineDbalStore::configureSchema()

Messenger

  • Deprecate Symfony\Component\Messenger\Transport\InMemoryTransport and Symfony\Component\Messenger\Transport\InMemoryTransportFactory in favor of Symfony\Component\Messenger\Transport\InMemory\InMemoryTransport and Symfony\Component\Messenger\Transport\InMemory\InMemoryTransportFactory
  • Deprecate StopWorkerOnSigtermSignalListener in favor of StopWorkerOnSignalsListener

Notifier

  • [BC BREAK] The following data providers for TransportTestCase are now static: toStringProvider(), supportedMessagesProvider() and unsupportedMessagesProvider()
  • [BC BREAK] The TransportTestCase::createTransport() method is now static

Security

  • Deprecate passing a secret as the 2nd argument to the constructor of Symfony\Component\Security\Http\RememberMe\PersistentRememberMeHandler

SecurityBundle

  • Deprecate enabling bundle and not configuring it, either remove the bundle or configure at least one firewall
  • Deprecate the security.firewalls.logout.csrf_token_generator config option, use security.firewalls.logout.csrf_token_manager instead

Serializer

  • Deprecate CacheableSupportsMethodInterface in favor of the new getSupportedTypes(?string $format) methods

    Before

    use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
    use Symfony\Component\Serializer\Normalizer\CacheableSupportsMethodInterface;
    
    class TopicNormalizer implements NormalizerInterface, CacheableSupportsMethodInterface
    {
        public function supportsNormalization($data, string $format = null, array $context = []): bool
        {
            return $data instanceof Topic;
        }
    
        public function hasCacheableSupportsMethod(): bool
        {
            return true;
        }
    
        // ...
    }

    After

    use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
    
    class TopicNormalizer implements NormalizerInterface
    {
        public function supportsNormalization($data, string $format = null, array $context = []): bool
        {
            return $data instanceof Topic;
        }
    
        public function getSupportedTypes(?string $format): array
        {
            return [
                Topic::class => true,
            ];
        }
    
        // ...
    }
  • The following Normalizer classes will become final in 7.0, use decoration instead of inheritance:

    • ConstraintViolationListNormalizer
    • CustomNormalizer
    • DataUriNormalizer
    • DateIntervalNormalizer
    • DateTimeNormalizer
    • DateTimeZoneNormalizer
    • GetSetMethodNormalizer
    • JsonSerializableNormalizer
    • ObjectNormalizer
    • PropertyNormalizer

    Before

    use Symfony\Component\Serializer\Normalizer\ObjectNormalizer;
    
    class TopicNormalizer extends ObjectNormalizer
    {
        // ...
    
        public function normalize($topic, string $format = null, array $context = []): array
        {
            $data = parent::normalize($topic, $format, $context);
    
            // ...
        }
    }

    After

    use Symfony\Component\DependencyInjection\Attribute\Autowire;
    use Symfony\Component\Serializer\Normalizer\DenormalizerInterface;
    use Symfony\Component\Serializer\Normalizer\NormalizerInterface;
    
    class TopicNormalizer implements NormalizerInterface
    {
        public function __construct(
            #[Autowire(service: 'serializer.normalizer.object')] private NormalizerInterface&DenormalizerInterface $objectNormalizer,
        ) {
        }
    
        public function normalize($topic, string $format = null, array $context = []): array
        {
            $data = $this->objectNormalizer->normalize($topic, $format, $context);
    
            // ...
        }
    
        // ...
    }

Validator

  • Implementing the ConstraintViolationInterface without implementing the getConstraint() method is deprecated
Morty Proxy This is a proxified and sanitized view of the page, visit original site.