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
376 lines (299 loc) · 15.9 KB

File metadata and controls

376 lines (299 loc) · 15.9 KB
Copy raw file
Download raw file
Outline
Edit and raw actions

UPGRADE FROM 4.x to 5.0

BrowserKit

  • Removed Client, use AbstractBrowser instead
  • Removed the possibility to extend Response by making it final.
  • Removed Response::buildHeader()
  • Removed Response::getStatus(), use Response::getStatusCode() instead
  • The Client::submit() method has a new $serverParameters argument.

Cache

  • Removed CacheItem::getPreviousTags(), use CacheItem::getMetadata() instead.
  • Removed all PSR-16 adapters, use Psr16Cache or Symfony\Contracts\Cache\CacheInterface implementations instead.
  • Removed SimpleCacheAdapter, use Psr16Adapter instead.

Config

  • Dropped support for constructing a TreeBuilder without passing root node information.
  • Added the getChildNodeDefinitions() method to ParentNodeDefinitionInterface.
  • The Processor class has been made final
  • Removed FileLoaderLoadException, use LoaderLoadException instead.
  • Using environment variables with cannotBeEmpty() if the value is validated with validate() will throw an exception.

Console

  • Removed the setCrossingChar() method in favor of the setDefaultCrossingChar() method in TableStyle.

  • Removed the setHorizontalBorderChar() method in favor of the setDefaultCrossingChars() method in TableStyle.

  • Removed the getHorizontalBorderChar() method in favor of the getBorderChars() method in TableStyle.

  • Removed the setVerticalBorderChar() method in favor of the setVerticalBorderChars() method in TableStyle.

  • Removed the getVerticalBorderChar() method in favor of the getBorderChars() method in TableStyle.

  • The ProcessHelper::run() method takes the command as an array of arguments.

    Before:

    $processHelper->run($output, 'ls -l');

    After:

    $processHelper->run($output, array('ls', '-l'));
    
    // alternatively, when a shell wrapper is required
    $processHelper->run($output, Process::fromShellCommandline('ls -l'));

DependencyInjection

  • Removed the TypedReference::canBeAutoregistered() and TypedReference::getRequiringClass() methods.
  • Removed support for auto-discovered extension configuration class which does not implement ConfigurationInterface.

DoctrineBridge

  • Deprecated injecting ClassMetadataFactory in DoctrineExtractor, an instance of EntityManagerInterface should be injected instead

DomCrawler

  • The Crawler::children() method has a new $selector argument.

EventDispatcher

  • The TraceableEventDispatcherInterface has been removed.
  • The signature of the EventDispatcherInterface::dispatch() method has been updated to dispatch($event, string $eventName = null)

Filesystem

  • The Filesystem::dumpFile() method no longer supports arrays in the $content argument.
  • The Filesystem::appendToFile() method no longer supports arrays in the $content argument.

Finder

  • The Finder::sortByName() method has a new $useNaturalSort argument.

Form

  • Removed support for using the format option of DateType and DateTimeType when the html5 option is enabled.

  • Using names for buttons that do not start with a letter, a digit, or an underscore leads to an exception.

  • Using names for buttons that do not contain only letters, digits, underscores, hyphens, and colons leads to an exception.

  • Using the date_format, date_widget, and time_widget options of the DateTimeType when the widget option is set to single_text is not supported anymore.

  • The getExtendedType() method was removed from the FormTypeExtensionInterface. It is replaced by the the static getExtendedTypes() method which must return an iterable of extended types.

    Before:

    class FooTypeExtension extends AbstractTypeExtension
    {
        public function getExtendedType()
        {
            return FormType::class;
        }
    
        // ...
    }

    After:

    class FooTypeExtension extends AbstractTypeExtension
    {
        public static function getExtendedTypes(): iterable
        {
            return array(FormType::class);
        }
    
        // ...
    }
  • The scale option was removed from the IntegerType.

  • The $scale argument of the IntegerToLocalizedStringTransformer was removed.

  • Calling FormRenderer::searchAndRenderBlock for fields which were already rendered throws an exception instead of returning empty strings:

    Before:

    {% for field in fieldsWithPotentialDuplicates %}
       {{ form_widget(field) }}
    {% endfor %}

    After:

    {% for field in fieldsWithPotentialDuplicates if not field.rendered %}
       {{ form_widget(field) }}
    {% endfor %}
  • The regions option was removed from the TimezoneType.

FrameworkBundle

  • The project dir argument of the constructor of AssetsInstallCommand is required.

  • Removed support for bundle:controller:action syntax to reference controllers. Use serviceOrFqcn::method instead where serviceOrFqcn is either the service ID when using controllers as services or the FQCN of the controller.

    Before:

    bundle_controller:
        path: /
        defaults:
            _controller: FrameworkBundle:Redirect:redirect

    After:

    bundle_controller:
        path: /
        defaults:
            _controller: Symfony\Bundle\FrameworkBundle\Controller\RedirectController::redirectAction
  • Removed Symfony\Bundle\FrameworkBundle\Controller\ControllerNameParser.

  • Warming up a router in RouterCacheWarmer that does not implement the WarmableInterface is not supported anymore.

  • The RequestDataCollector class has been removed. Use the Symfony\Component\HttpKernel\DataCollector\RequestDataCollector class instead.

  • Removed Symfony\Bundle\FrameworkBundle\Controller\Controller. Use Symfony\Bundle\FrameworkBundle\Controller\AbstractController instead.

  • Added support for the SameSite attribute for session cookies. It is highly recommended to set this setting (framework.session.cookie_samesite) to lax for increased security against CSRF attacks.

  • The ContainerAwareCommand class has been removed, use Symfony\Component\Console\Command\Command with dependency injection instead.

  • The Templating\Helper\TranslatorHelper::transChoice() method has been removed, use the trans() one instead with a %count% parameter.

  • Removed support for legacy translations directories src/Resources/translations/ and src/Resources/<BundleName>/translations/, use translations/ instead.

  • Support for the legacy directory structure in translation:update and debug:translation commands has been removed.

  • Removed the "Psr\SimpleCache\CacheInterface" / "cache.app.simple" service, use "Symfony\Contracts\Cache\CacheInterface" / "cache.app" instead.

HttpFoundation

  • The $size argument of the UploadedFile constructor has been removed.
  • The getClientSize() method of the UploadedFile class has been removed.
  • The getSession() method of the Request class throws an exception when session is null.
  • The default value of the "$secure" and "$samesite" arguments of Cookie's constructor changed respectively from "false" to "null" and from "null" to "lax".
  • The MimeTypeGuesserInterface and ExtensionGuesserInterface interfaces have been removed, use Symfony\Component\Mime\MimeTypesInterface instead.
  • The MimeType and MimeTypeExtensionGuesser classes have been removed, use Symfony\Component\Mime\MimeTypes instead.
  • The FileBinaryMimeTypeGuesser class has been removed, use Symfony\Component\Mime\FileBinaryMimeTypeGuesser instead.
  • The FileinfoMimeTypeGuesser class has been removed, use Symfony\Component\Mime\FileinfoMimeTypeGuesser instead.

HttpKernel

  • Removed Client, use HttpKernelBrowser instead
  • The Kernel::getRootDir() and the kernel.root_dir parameter have been removed
  • The KernelInterface::getName() and the kernel.name parameter have been removed
  • Removed the first and second constructor argument of ConfigDataCollector
  • Removed ConfigDataCollector::getApplicationName()
  • Removed ConfigDataCollector::getApplicationVersion()
  • Removed FilterControllerArgumentsEvent, use ControllerArgumentsEvent instead
  • Removed FilterControllerEvent, use ControllerEvent instead
  • Removed FilterResponseEvent, use ResponseEvent instead
  • Removed GetResponseEvent, use RequestEvent instead
  • Removed GetResponseForControllerResultEvent, use ViewEvent instead
  • Removed GetResponseForExceptionEvent, use ExceptionEvent instead
  • Removed PostResponseEvent, use TerminateEvent instead

Messenger

  • The LoggingMiddleware class has been removed, pass a logger to SendMessageMiddleware instead.

Monolog

  • The methods DebugProcessor::getLogs(), DebugProcessor::countErrors(), Logger::getLogs() and Logger::countErrors() have a new $request argument.

Process

  • Removed the Process::setCommandline() and the PhpProcess::setPhpBinary() methods.

  • Commands must be defined as arrays when creating a Process instance.

    Before:

    $process = new Process('ls -l');

    After:

    $process = new Process(array('ls', '-l'));
    
    // alternatively, when a shell wrapper is required
    $process = Process::fromShellCommandline('ls -l');

Routing

  • The generator_base_class, generator_cache_class, matcher_base_class, and matcher_cache_class router options have been removed.
  • Route and CompiledRoute don't implement Serializable anymore; if you serialize them, please ensure your unserialization logic can recover from a failure related to an updated serialization format

Security

  • The Role and SwitchUserRole classes have been removed.

  • The RoleHierarchyInterface has been removed.

  • The getReachableRoles() method of the RoleHierarchy class has been removed.

  • The getRoles() method has been removed from the TokenInterface. It has been replaced by the new getRoleNames() method.

  • The ContextListener::setLogoutOnUserChange() method has been removed.

  • The Symfony\Component\Security\Core\User\AdvancedUserInterface has been removed.

  • The ExpressionVoter::addExpressionLanguageProvider() method has been removed.

  • The FirewallMapInterface::getListeners() method must return an array of 3 elements, the 3rd one must be either a LogoutListener instance or null.

  • The AuthenticationTrustResolver constructor arguments have been removed.

  • A user object that is not an instance of UserInterface cannot be accessed from Security::getUser() anymore and returns null instead.

  • SimpleAuthenticatorInterface, SimpleFormAuthenticatorInterface, SimplePreAuthenticatorInterface, SimpleAuthenticationProvider, SimpleAuthenticationHandler, SimpleFormAuthenticationListener and SimplePreAuthenticationListener have been removed. Use Guard instead.

  • The ListenerInterface has been removed, turn your listeners into callables instead.

  • The Firewall::handleRequest() method has been removed, use Firewall::callListeners() instead.

  • \Serializable interface has been removed from AbstractToken and AuthenticationException, thus serialize() and unserialize() aren't available. Use getState() and setState() instead.

    Before:

    public function serialize()
    {
        return [$this->myLocalVar, parent::serialize()];
    }
    
    public function unserialize($serialized)
    {
        [$this->myLocalVar, $parentSerialized] = unserialize($serialized);
        parent::unserialize($parentSerialized);
    }

    After:

    protected function getState(): array
    {
        return [$this->myLocalVar, parent::getState()];
    }
    
    protected function setState(array $data)
    {
        [$this->myLocalVar, $parentData] = $data;
        parent::setState($parentData);
    }

SecurityBundle

  • The logout_on_user_change firewall option has been removed.
  • The switch_user.stateless firewall option has been removed.
  • The SecurityUserValueResolver class has been removed.
  • Passing a FirewallConfig instance as 3rd argument to the FirewallContext constructor now throws a \TypeError, pass a LogoutListener instance instead.
  • The security.authentication.trust_resolver.anonymous_class parameter has been removed.
  • The security.authentication.trust_resolver.rememberme_class parameter has been removed.
  • The simple_form and simple_preauth authentication listeners have been removed, use Guard instead.
  • The SimpleFormFactory and SimplePreAuthenticationFactory classes have been removed, use Guard instead.
  • The names of the cookies configured in the logout.delete_cookies option are no longer normalized. If any of your cookie names has dashes they won't be changed to underscores. Before: my-cookie deleted the my_cookie cookie (with an underscore). After: my-cookie deletes the my-cookie cookie (with a dash).

Serializer

  • The AbstractNormalizer::handleCircularReference() method has two new $format and $context arguments.

Translation

  • The FileDumper::setBackup() method has been removed.
  • The TranslationWriter::disableBackup() method has been removed.
  • The TranslatorInterface has been removed in favor of Symfony\Contracts\Translation\TranslatorInterface
  • The MessageSelector, Interval and PluralizationRules classes have been removed, use IdentityTranslator instead
  • The Translator::getFallbackLocales() and TranslationDataCollector::getFallbackLocales() method are now internal
  • The Translator::transChoice() method has been removed in favor of using Translator::trans() with "%count%" as the parameter driving plurals

TwigBundle

  • The default value (false) of the twig.strict_variables configuration option has been changed to %kernel.debug%.
  • The transchoice tag and filter have been removed, use the trans ones instead with a %count% parameter.
  • Removed support for legacy templates directories src/Resources/views/ and src/Resources/<BundleName>/views/, use templates/ and templates/bundles/<BundleName>/ instead.

Validator

  • The checkMX and checkHost options of the Email constraint were removed
  • The Email::__construct() 'strict' property has been removed. Use 'mode'=>"strict" instead.
  • Calling EmailValidator::__construct() method with a boolean parameter has been removed, use EmailValidator("strict") instead.
  • Removed the checkDNS and dnsMessage options from the Url constraint.
  • The component is now decoupled from symfony/translation and uses Symfony\Contracts\Translation\TranslatorInterface instead
  • The ValidatorBuilderInterface has been removed and ValidatorBuilder is now final
  • Removed support for validating instances of \DateTimeInterface in DateTimeValidator, DateValidator and TimeValidator. Use Type instead or remove the constraint if the underlying model is type hinted to \DateTimeInterface already.
  • The symfony/intl component is now required for using the Bic, Country, Currency, Language and Locale constraints
  • The egulias/email-validator component is now required for using the Email constraint in strict mode
  • The symfony/expression-language component is now required for using the Expression constraint

Workflow

  • The DefinitionBuilder::reset() method has been removed, use the clear() one instead.
  • add method has been removed use addWorkflow method in Workflow\Registry instead.
  • SupportStrategyInterface has been removed, use WorkflowSupportStrategyInterface instead.
  • ClassInstanceSupportStrategy has been removed, use InstanceOfSupportStrategy instead.
  • MarkingStoreInterface::setMarking() has a third argument: array $context = [].

Yaml

  • The parser is now stricter and will throw a ParseException when a mapping is found inside a multi-line string.
Morty Proxy This is a proxified and sanitized view of the page, visit original site.