symfony / symfony

The Symfony PHP framework
https://symfony.com
MIT License
29.78k stars 9.47k forks source link

Add phpdoc return type to v6 codebase to prepare v7 typehint #47551

Closed 94noni closed 1 year ago

94noni commented 2 years ago

Description

Based on this comment https://github.com/symfony/symfony/pull/47480#issuecomment-1238977713 on a small PR Friendly ping @stof @fabpot as originals reviewers


Questions:

Thank you

Example

Symfony v4/5/6

     /**
      * @return string
      */
     public function get()
     {}

Symfony v7

     public function get(): string
     {}
wouterj commented 2 years ago

We've introduced a type patcher utility in Symfony 5.4. This utility either added type declarations, or added PHPdoc return types (to give the community more time to upgrade). See https://github.com/symfony/symfony/blob/6.2/.github/expected-missing-return-types.diff#L1-L7 for more information about this tool and the expected missing types.

Obviously, this tool has missed some methods. We should tackle those in Symfony 6.x, so Symfony 7 is fully typed. I did a little experiment locally, first running the type patcher tool and then running the MissingReturnType check of Psalm. Psalm finds 2632 methods without a return type (excluding tests - we don't care about them).

I'm not sure how we (=Symfony contributors) should add them. We can try to use Psalter to inform the type declarations and then somehow transform them into @return PHPdoc. Or we can try writing a Rector rule to add the PHPdoc? @nicolas-grekas you added a bulk of return PHPdoc in 5.x, did you use a custom script or something to do this?

raziel057 commented 2 years ago

Maybe it’s preferable to not add types for specific methods for performance reasons (when they are called ment times)

stof commented 2 years ago

@wouterj AFAIK, the types added in 5.x were added by the patcher tool (that's why it was written).

Regarding the methods returned by Psalm, is it about running the patcher in force mode (which will convert phpdoc-only return types to native types when possible) ?

94noni commented 1 year ago

closing as not much interest so far on this

fabpot commented 1 year ago

That's an interesting topic, let's reopen.

wouterj commented 1 year ago

Fyi, I see Psalter has an option to generate missing PHPdoc. I'll try that command soon.

94noni commented 1 year ago

@fabpot @wouterj hi, thx for writing back @wouterj feel free to ping me if you need help/testing the PR etc Regards

derrabus commented 1 year ago

I also believe we should visit the return type topic once again. PHP's type system has reached a level where there's little reason to have methods without a declared return type. For Symfony 7 we could even have automated checks that cause a red build if a PR tries to add a method without native return type.

wouterj commented 1 year ago

In 3 PRs, we've added many more return types. For anyones information, there are still 1618 methods left that don't yet have a return type or @return.

full list of method names ```Please define the SYMFONY_PATCH_TYPE_DECLARATIONS env var when running this script. Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector::getManagers Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector::getConnections Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector::getQueries Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector::getTime Symfony\Bridge\Doctrine\DataFixtures\ContainerAwareLoader::getFixtures Symfony\Bridge\Doctrine\DependencyInjection\AbstractDoctrineExtension::load Symfony\Bridge\Doctrine\DependencyInjection\CompilerPass\RegisterEventListenersAndSubscribersPass::process Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser::getMetadata Symfony\Bridge\Doctrine\ManagerRegistry::getConnection Symfony\Bridge\Doctrine\ManagerRegistry::getConnectionNames Symfony\Bridge\Doctrine\ManagerRegistry::getConnections Symfony\Bridge\Doctrine\ManagerRegistry::getDefaultConnectionName Symfony\Bridge\Doctrine\ManagerRegistry::getDefaultManagerName Symfony\Bridge\Doctrine\ManagerRegistry::getManager Symfony\Bridge\Doctrine\ManagerRegistry::getManagerForClass Symfony\Bridge\Doctrine\ManagerRegistry::getManagerNames Symfony\Bridge\Doctrine\ManagerRegistry::getManagers Symfony\Bridge\Doctrine\ManagerRegistry::getRepository Symfony\Bridge\Doctrine\ManagerRegistry::resetManager Symfony\Bridge\Doctrine\Middleware\Debug\Connection::quote Symfony\Bridge\Doctrine\Middleware\Debug\Connection::lastInsertId Symfony\Bridge\Doctrine\Middleware\Debug\Connection::getServerVersion Symfony\Bridge\Doctrine\Middleware\Debug\Driver::getDatabasePlatform Symfony\Bridge\Doctrine\Middleware\Debug\Driver::getSchemaManager Symfony\Bridge\Doctrine\Middleware\Debug\Driver::createDatabasePlatformForVersion Symfony\Bridge\Doctrine\Validator\Constraints\UniqueEntityValidator::validate Symfony\Bridge\Monolog\Handler\ConsoleHandler::setOutput Symfony\Bridge\Monolog\Handler\ConsoleHandler::onCommand Symfony\Bridge\Monolog\Handler\ConsoleHandler::onTerminate Symfony\Bridge\Monolog\Handler\ElasticsearchLogstashHandler::reset Symfony\Bridge\Monolog\Handler\NotifierHandler::getHighestRecord Symfony\Bridge\Monolog\Handler\NotifierHandler::reset Symfony\Bridge\Monolog\Handler\ServerLogHandler::nullErrorHandler Symfony\Bridge\Monolog\Handler\ServerLogHandler::createSocket Symfony\Bridge\Twig\Command\DebugCommand::getMetadata Symfony\Bridge\Twig\Command\LintCommand::findFiles Symfony\Bridge\Twig\Command\LintCommand::display Symfony\Bridge\Twig\Command\LintCommand::displayJson Symfony\Bridge\Twig\Command\LintCommand::renderException Symfony\Bridge\Twig\DataCollector\TwigDataCollector::getComputedData Symfony\Bridge\Twig\Extension\AssetExtension::getTokenParsers Symfony\Bridge\Twig\Extension\AssetExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\AssetExtension::getFilters Symfony\Bridge\Twig\Extension\AssetExtension::getTests Symfony\Bridge\Twig\Extension\AssetExtension::getOperators Symfony\Bridge\Twig\Extension\CodeExtension::getTokenParsers Symfony\Bridge\Twig\Extension\CodeExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\CodeExtension::getTests Symfony\Bridge\Twig\Extension\CodeExtension::getFunctions Symfony\Bridge\Twig\Extension\CodeExtension::getOperators Symfony\Bridge\Twig\Extension\CsrfExtension::getTokenParsers Symfony\Bridge\Twig\Extension\CsrfExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\CsrfExtension::getFilters Symfony\Bridge\Twig\Extension\CsrfExtension::getTests Symfony\Bridge\Twig\Extension\CsrfExtension::getOperators Symfony\Bridge\Twig\Extension\DumpExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\DumpExtension::getFilters Symfony\Bridge\Twig\Extension\DumpExtension::getTests Symfony\Bridge\Twig\Extension\DumpExtension::getOperators Symfony\Bridge\Twig\Extension\ExpressionExtension::getTokenParsers Symfony\Bridge\Twig\Extension\ExpressionExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\ExpressionExtension::getFilters Symfony\Bridge\Twig\Extension\ExpressionExtension::getTests Symfony\Bridge\Twig\Extension\ExpressionExtension::getOperators Symfony\Bridge\Twig\Extension\FormExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\FormExtension::getOperators Symfony\Bridge\Twig\Extension\HtmlSanitizerExtension::getTokenParsers Symfony\Bridge\Twig\Extension\HtmlSanitizerExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\HtmlSanitizerExtension::getTests Symfony\Bridge\Twig\Extension\HtmlSanitizerExtension::getFunctions Symfony\Bridge\Twig\Extension\HtmlSanitizerExtension::getOperators Symfony\Bridge\Twig\Extension\HttpFoundationExtension::getTokenParsers Symfony\Bridge\Twig\Extension\HttpFoundationExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\HttpFoundationExtension::getFilters Symfony\Bridge\Twig\Extension\HttpFoundationExtension::getTests Symfony\Bridge\Twig\Extension\HttpFoundationExtension::getOperators Symfony\Bridge\Twig\Extension\HttpKernelExtension::getTokenParsers Symfony\Bridge\Twig\Extension\HttpKernelExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\HttpKernelExtension::getFilters Symfony\Bridge\Twig\Extension\HttpKernelExtension::getTests Symfony\Bridge\Twig\Extension\HttpKernelExtension::getOperators Symfony\Bridge\Twig\Extension\LogoutUrlExtension::getTokenParsers Symfony\Bridge\Twig\Extension\LogoutUrlExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\LogoutUrlExtension::getFilters Symfony\Bridge\Twig\Extension\LogoutUrlExtension::getTests Symfony\Bridge\Twig\Extension\LogoutUrlExtension::getOperators Symfony\Bridge\Twig\Extension\ProfilerExtension::getTokenParsers Symfony\Bridge\Twig\Extension\ProfilerExtension::getFilters Symfony\Bridge\Twig\Extension\ProfilerExtension::getTests Symfony\Bridge\Twig\Extension\ProfilerExtension::getFunctions Symfony\Bridge\Twig\Extension\ProfilerExtension::getOperators Symfony\Bridge\Twig\Extension\RoutingExtension::getTokenParsers Symfony\Bridge\Twig\Extension\RoutingExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\RoutingExtension::getFilters Symfony\Bridge\Twig\Extension\RoutingExtension::getTests Symfony\Bridge\Twig\Extension\RoutingExtension::getOperators Symfony\Bridge\Twig\Extension\SecurityExtension::getTokenParsers Symfony\Bridge\Twig\Extension\SecurityExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\SecurityExtension::getFilters Symfony\Bridge\Twig\Extension\SecurityExtension::getTests Symfony\Bridge\Twig\Extension\SecurityExtension::getOperators Symfony\Bridge\Twig\Extension\SerializerExtension::getTokenParsers Symfony\Bridge\Twig\Extension\SerializerExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\SerializerExtension::getTests Symfony\Bridge\Twig\Extension\SerializerExtension::getFunctions Symfony\Bridge\Twig\Extension\SerializerExtension::getOperators Symfony\Bridge\Twig\Extension\StopwatchExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\StopwatchExtension::getFilters Symfony\Bridge\Twig\Extension\StopwatchExtension::getTests Symfony\Bridge\Twig\Extension\StopwatchExtension::getFunctions Symfony\Bridge\Twig\Extension\StopwatchExtension::getOperators Symfony\Bridge\Twig\Extension\TranslationExtension::getTests Symfony\Bridge\Twig\Extension\TranslationExtension::getOperators Symfony\Bridge\Twig\Extension\WebLinkExtension::getTokenParsers Symfony\Bridge\Twig\Extension\WebLinkExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\WebLinkExtension::getFilters Symfony\Bridge\Twig\Extension\WebLinkExtension::getTests Symfony\Bridge\Twig\Extension\WebLinkExtension::getOperators Symfony\Bridge\Twig\Extension\WorkflowExtension::getMetadata Symfony\Bridge\Twig\Extension\WorkflowExtension::getTokenParsers Symfony\Bridge\Twig\Extension\WorkflowExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\WorkflowExtension::getFilters Symfony\Bridge\Twig\Extension\WorkflowExtension::getTests Symfony\Bridge\Twig\Extension\WorkflowExtension::getOperators Symfony\Bridge\Twig\Extension\YamlExtension::getTokenParsers Symfony\Bridge\Twig\Extension\YamlExtension::getNodeVisitors Symfony\Bridge\Twig\Extension\YamlExtension::getTests Symfony\Bridge\Twig\Extension\YamlExtension::getFunctions Symfony\Bridge\Twig\Extension\YamlExtension::getOperators Symfony\Bridge\Twig\Node\DumpNode::getAttribute Symfony\Bridge\Twig\Node\FormThemeNode::getAttribute Symfony\Bridge\Twig\Node\RenderBlockNode::compileCallable Symfony\Bridge\Twig\Node\RenderBlockNode::getArguments Symfony\Bridge\Twig\Node\RenderBlockNode::getAttribute Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode::compileCallable Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode::getArguments Symfony\Bridge\Twig\Node\SearchAndRenderBlockNode::getAttribute Symfony\Bridge\Twig\Node\StopwatchNode::getAttribute Symfony\Bridge\Twig\Node\TransDefaultDomainNode::getAttribute Symfony\Bridge\Twig\Node\TransNode::getAttribute Symfony\Bundle\FrameworkBundle\Command\AbstractConfigCommand::listBundles Symfony\Bundle\FrameworkBundle\Command\AbstractConfigCommand::validateConfiguration Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand::getConfig Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand::listBundles Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand::validateConfiguration Symfony\Bundle\FrameworkBundle\Command\ConfigDumpReferenceCommand::listBundles Symfony\Bundle\FrameworkBundle\Command\ConfigDumpReferenceCommand::validateConfiguration Symfony\Bundle\FrameworkBundle\Console\Descriptor\Descriptor::describeEventDispatcherListeners Symfony\Bundle\FrameworkBundle\Console\Descriptor\Descriptor::describeCallable Symfony\Bundle\FrameworkBundle\Console\Descriptor\MarkdownDescriptor::describeCallable Symfony\Bundle\FrameworkBundle\Console\Helper\DescriptorHelper::formatTime Symfony\Bundle\FrameworkBundle\DependencyInjection\Configuration::addHttpClientRetrySection Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait::registerContainerConfiguration Symfony\Bundle\FrameworkBundle\Routing\RedirectableCompiledUrlMatcher::getExpressionLanguage Symfony\Bundle\FrameworkBundle\Test\KernelTestCase::ensureKernelShutdown Symfony\Bundle\FrameworkBundle\Test\KernelTestCase::getResult Symfony\Bundle\FrameworkBundle\Test\KernelTestCase::runTest Symfony\Bundle\FrameworkBundle\Test\TestBrowserToken::unserialize Symfony\Bundle\FrameworkBundle\Test\TestContainer::load Symfony\Bundle\FrameworkBundle\Test\WebTestCase::ensureKernelShutdown Symfony\Bundle\FrameworkBundle\Test\WebTestCase::getResult Symfony\Bundle\FrameworkBundle\Test\WebTestCase::runTest Symfony\Bundle\SecurityBundle\Debug\TraceableListenerTrait::getWrappedListener Symfony\Bundle\SecurityBundle\Debug\WrappedLazyListener::authenticate Symfony\Bundle\SecurityBundle\Debug\WrappedLazyListener::getWrappedListener Symfony\Bundle\SecurityBundle\Debug\WrappedListener::getWrappedListener Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::prepend Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::load Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createRoleHierarchy Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createAuthorization Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createFirewalls Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createContextListener Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createHashers Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createHasher Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::addAuthenticatorFactory Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::addUserProviderFactory Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\AuthenticatorFactoryInterface::addConfiguration Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\StatelessAuthenticatorFactoryInterface::addConfiguration Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface::create Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface::getKey Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface::addConfiguration Symfony\Bundle\WebProfilerBundle\Csp\ContentSecurityPolicyHandler::getDirectiveFallback Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension::getTokenParsers Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension::getFilters Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension::getTests Symfony\Bundle\WebProfilerBundle\Twig\WebProfilerExtension::getOperators Symfony\Component\Asset\Exception\AssetNotFoundException::getCode Symfony\Component\Asset\Exception\ExceptionInterface::getCode Symfony\Component\Asset\Exception\InvalidArgumentException::getCode Symfony\Component\Asset\Exception\LogicException::getCode Symfony\Component\Asset\Exception\RuntimeException::getCode Symfony\Component\BrowserKit\AbstractBrowser::getScript Symfony\Component\BrowserKit\Exception\BadMethodCallException::getCode Symfony\Component\BrowserKit\Exception\JsonException::getCode Symfony\Component\BrowserKit\HttpBrowser::getScript Symfony\Component\Cache\Adapter\AbstractAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\AbstractAdapter::doGet Symfony\Component\Cache\Adapter\AbstractTagAwareAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\AbstractTagAwareAdapter::doGet Symfony\Component\Cache\Adapter\ApcuAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\ArrayAdapter::freeze Symfony\Component\Cache\Adapter\ArrayAdapter::unfreeze Symfony\Component\Cache\Adapter\ChainAdapter::doGet Symfony\Component\Cache\Adapter\CouchbaseBucketAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\CouchbaseCollectionAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\DoctrineDbalAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\FilesystemAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\FilesystemAdapter::init Symfony\Component\Cache\Adapter\FilesystemAdapter::throwError Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter::init Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter::throwError Symfony\Component\Cache\Adapter\MemcachedAdapter::checkResultCode Symfony\Component\Cache\Adapter\MemcachedAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\PdoAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\PhpArrayAdapter::doGet Symfony\Component\Cache\Adapter\PhpFilesAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\PhpFilesAdapter::init Symfony\Component\Cache\Adapter\PhpFilesAdapter::throwError Symfony\Component\Cache\Adapter\ProxyAdapter::doGet Symfony\Component\Cache\Adapter\Psr16Adapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\RedisAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\RedisTagAwareAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\TagAwareAdapter::doGet Symfony\Component\Cache\DependencyInjection\CachePoolPass::process Symfony\Component\Cache\Exception\CacheException::getCode Symfony\Component\Cache\Exception\InvalidArgumentException::getCode Symfony\Component\Cache\Exception\LogicException::getCode Symfony\Component\Cache\LockRegistry::compute Symfony\Component\Cache\LockRegistry::open Symfony\Component\Cache\Marshaller\DefaultMarshaller::handleUnserializeCallback Symfony\Component\Cache\Traits\AbstractAdapterTrait::handleUnserializeCallback Symfony\Component\Cache\Traits\ContractsTrait::doGet Symfony\Component\Cache\Traits\FilesystemCommonTrait::init Symfony\Component\Cache\Traits\FilesystemCommonTrait::throwError Symfony\Component\Cache\Traits\FilesystemTrait::init Symfony\Component\Cache\Traits\FilesystemTrait::throwError Symfony\Component\Config\ConfigCacheInterface::write Symfony\Component\Config\Definition\BaseNode::validateType Symfony\Component\Config\Definition\Builder\BuilderAwareInterface::setBuilder Symfony\Component\Config\Definition\Builder\ParentNodeDefinitionInterface::setBuilder Symfony\Component\Config\Definition\Exception\DuplicateKeyException::getCode Symfony\Component\Config\Definition\Exception\Exception::getCode Symfony\Component\Config\Definition\Exception\ForbiddenOverwriteException::getCode Symfony\Component\Config\Definition\Exception\InvalidConfigurationException::getCode Symfony\Component\Config\Definition\Exception\InvalidDefinitionException::getCode Symfony\Component\Config\Definition\Exception\InvalidTypeException::getCode Symfony\Component\Config\Definition\Exception\UnsetKeyException::getCode Symfony\Component\Config\Definition\Loader\DefinitionFileLoader::setCurrentDir Symfony\Component\Config\Definition\PrototypeNodeInterface::setName Symfony\Component\Config\Exception\FileLoaderImportCircularReferenceException::getCode Symfony\Component\Config\Exception\FileLocatorFileNotFoundException::getCode Symfony\Component\Config\Exception\LoaderLoadException::getCode Symfony\Component\Config\Loader\FileLoader::setCurrentDir Symfony\Component\Config\Loader\FileLoader::doImport Symfony\Component\Config\Loader\GlobFileLoader::setCurrentDir Symfony\Component\Config\Loader\LoaderInterface::setResolver Symfony\Component\Config\ResourceCheckerConfigCache::safelyUnserialize Symfony\Component\Config\Util\Exception\InvalidXmlException::getCode Symfony\Component\Config\Util\Exception\XmlParsingException::getCode Symfony\Component\Console\Command\LockableTrait::release Symfony\Component\Console\Completion\CompletionInput::getStream Symfony\Component\Console\Descriptor\Descriptor::describeInputArgument Symfony\Component\Console\Descriptor\Descriptor::describeInputOption Symfony\Component\Console\Descriptor\Descriptor::describeInputDefinition Symfony\Component\Console\Descriptor\Descriptor::describeCommand Symfony\Component\Console\Descriptor\Descriptor::describeApplication Symfony\Component\Console\Descriptor\DescriptorInterface::describe Symfony\Component\Console\Exception\CommandNotFoundException::getCode Symfony\Component\Console\Exception\ExceptionInterface::getCode Symfony\Component\Console\Exception\InvalidArgumentException::getCode Symfony\Component\Console\Exception\InvalidOptionException::getCode Symfony\Component\Console\Exception\LogicException::getCode Symfony\Component\Console\Exception\MissingInputException::getCode Symfony\Component\Console\Exception\NamespaceNotFoundException::getCode Symfony\Component\Console\Exception\RuntimeException::getCode Symfony\Component\Console\Formatter\OutputFormatterInterface::setDecorated Symfony\Component\Console\Formatter\OutputFormatterInterface::setStyle Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::setForeground Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::setBackground Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::setOption Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::unsetOption Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::setOptions Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface::setDecorated Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface::setStyle Symfony\Component\Console\Helper\DebugFormatterHelper::formatTime Symfony\Component\Console\Helper\DescriptorHelper::formatTime Symfony\Component\Console\Helper\FormatterHelper::formatTime Symfony\Component\Console\Helper\Helper::formatTime Symfony\Component\Console\Helper\HelperInterface::setHelperSet Symfony\Component\Console\Helper\InputAwareHelper::formatTime Symfony\Component\Console\Helper\ProcessHelper::formatTime Symfony\Component\Console\Helper\ProgressBar::getMessage Symfony\Component\Console\Helper\QuestionHelper::formatTime Symfony\Component\Console\Helper\SymfonyQuestionHelper::formatTime Symfony\Component\Console\Helper\Table::setStyleDefinition Symfony\Component\Console\Helper\Table::render Symfony\Component\Console\Helper\Table::renderRowSeparator Symfony\Component\Console\Helper\Table::renderRow Symfony\Component\Console\Helper\Table::calculateNumberOfColumns Symfony\Component\Console\Helper\Table::calculateColumnsWidth Symfony\Component\Console\Helper\Table::cleanup Symfony\Component\Console\Input\ArgvInput::getStream Symfony\Component\Console\Input\ArrayInput::getStream Symfony\Component\Console\Input\Input::parse Symfony\Component\Console\Input\Input::getStream Symfony\Component\Console\Input\InputAwareInterface::setInput Symfony\Component\Console\Input\InputInterface::bind Symfony\Component\Console\Input\InputInterface::validate Symfony\Component\Console\Input\InputInterface::setArgument Symfony\Component\Console\Input\InputInterface::setOption Symfony\Component\Console\Input\InputInterface::setInteractive Symfony\Component\Console\Input\StreamableInputInterface::setStream Symfony\Component\Console\Input\StreamableInputInterface::bind Symfony\Component\Console\Input\StreamableInputInterface::validate Symfony\Component\Console\Input\StreamableInputInterface::setArgument Symfony\Component\Console\Input\StreamableInputInterface::setOption Symfony\Component\Console\Input\StreamableInputInterface::setInteractive Symfony\Component\Console\Input\StringInput::getStream Symfony\Component\Console\Output\ConsoleOutputInterface::setErrorOutput Symfony\Component\Console\Output\ConsoleOutputInterface::write Symfony\Component\Console\Output\ConsoleOutputInterface::writeln Symfony\Component\Console\Output\ConsoleOutputInterface::setVerbosity Symfony\Component\Console\Output\ConsoleOutputInterface::setDecorated Symfony\Component\Console\Output\ConsoleOutputInterface::setFormatter Symfony\Component\Console\Output\Output::doWrite Symfony\Component\Console\Output\OutputInterface::write Symfony\Component\Console\Output\OutputInterface::writeln Symfony\Component\Console\Output\OutputInterface::setVerbosity Symfony\Component\Console\Output\OutputInterface::setDecorated Symfony\Component\Console\Output\OutputInterface::setFormatter Symfony\Component\Console\Style\OutputStyle::title Symfony\Component\Console\Style\OutputStyle::section Symfony\Component\Console\Style\OutputStyle::listing Symfony\Component\Console\Style\OutputStyle::text Symfony\Component\Console\Style\OutputStyle::success Symfony\Component\Console\Style\OutputStyle::error Symfony\Component\Console\Style\OutputStyle::warning Symfony\Component\Console\Style\OutputStyle::note Symfony\Component\Console\Style\OutputStyle::caution Symfony\Component\Console\Style\OutputStyle::table Symfony\Component\Console\Style\OutputStyle::progressStart Symfony\Component\Console\Style\OutputStyle::progressAdvance Symfony\Component\Console\Style\OutputStyle::progressFinish Symfony\Component\Console\Style\StyleInterface::title Symfony\Component\Console\Style\StyleInterface::section Symfony\Component\Console\Style\StyleInterface::listing Symfony\Component\Console\Style\StyleInterface::text Symfony\Component\Console\Style\StyleInterface::success Symfony\Component\Console\Style\StyleInterface::error Symfony\Component\Console\Style\StyleInterface::warning Symfony\Component\Console\Style\StyleInterface::note Symfony\Component\Console\Style\StyleInterface::caution Symfony\Component\Console\Style\StyleInterface::table Symfony\Component\Console\Style\StyleInterface::newLine Symfony\Component\Console\Style\StyleInterface::progressStart Symfony\Component\Console\Style\StyleInterface::progressAdvance Symfony\Component\Console\Style\StyleInterface::progressFinish Symfony\Component\CssSelector\Exception\ExceptionInterface::getCode Symfony\Component\CssSelector\Exception\ExpressionErrorException::getCode Symfony\Component\CssSelector\Exception\InternalErrorException::getCode Symfony\Component\CssSelector\Exception\ParseException::getCode Symfony\Component\CssSelector\Exception\SyntaxErrorException::getCode Symfony\Component\DependencyInjection\Argument\ArgumentInterface::setValues Symfony\Component\DependencyInjection\Argument\ReferenceSetArgumentTrait::setValues Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface::process Symfony\Component\DependencyInjection\Compiler\RegisterAutoconfigureAttributesPass::registerForAutoconfiguration Symfony\Component\DependencyInjection\Container::make Symfony\Component\DependencyInjection\Container::load Symfony\Component\DependencyInjection\ContainerAwareInterface::setContainer Symfony\Component\DependencyInjection\ContainerBuilder::load Symfony\Component\DependencyInjection\ContainerInterface::set Symfony\Component\DependencyInjection\ContainerInterface::setParameter Symfony\Component\DependencyInjection\Exception\AutowiringFailedException::getCode Symfony\Component\DependencyInjection\Exception\BadMethodCallException::getCode Symfony\Component\DependencyInjection\Exception\EnvNotFoundException::getCode Symfony\Component\DependencyInjection\Exception\EnvParameterException::getCode Symfony\Component\DependencyInjection\Exception\ExceptionInterface::getCode Symfony\Component\DependencyInjection\Exception\InvalidArgumentException::getCode Symfony\Component\DependencyInjection\Exception\InvalidParameterTypeException::getCode Symfony\Component\DependencyInjection\Exception\LogicException::getCode Symfony\Component\DependencyInjection\Exception\OutOfBoundsException::getCode Symfony\Component\DependencyInjection\Exception\ParameterCircularReferenceException::getCode Symfony\Component\DependencyInjection\Exception\ParameterNotFoundException::getCode Symfony\Component\DependencyInjection\Exception\RuntimeException::getCode Symfony\Component\DependencyInjection\Exception\ServiceCircularReferenceException::getCode Symfony\Component\DependencyInjection\Exception\ServiceNotFoundException::getCode Symfony\Component\DependencyInjection\Extension\Extension::load Symfony\Component\DependencyInjection\Extension\ExtensionInterface::load Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface::prepend Symfony\Component\DependencyInjection\Loader\DirectoryLoader::setCurrentDir Symfony\Component\DependencyInjection\Loader\FileLoader::setCurrentDir Symfony\Component\DependencyInjection\Loader\GlobFileLoader::setCurrentDir Symfony\Component\DependencyInjection\Loader\IniFileLoader::setCurrentDir Symfony\Component\DependencyInjection\Loader\PhpFileLoader::setCurrentDir Symfony\Component\DependencyInjection\Loader\XmlFileLoader::setCurrentDir Symfony\Component\DependencyInjection\Loader\YamlFileLoader::parseDefinition Symfony\Component\DependencyInjection\Loader\YamlFileLoader::setCurrentDir Symfony\Component\DependencyInjection\ParameterBag\ContainerBag::isResolved Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface::resolveValue Symfony\Component\DependencyInjection\ParameterBag\EnvPlaceholderParameterBag::isResolved Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag::isResolved Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::isResolved Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::clear Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::add Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::remove Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::set Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::resolve Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::resolveValue Symfony\Component\DependencyInjection\TaggedContainerInterface::set Symfony\Component\DependencyInjection\TaggedContainerInterface::setParameter Symfony\Component\DomCrawler\AbstractUriElement::setNode Symfony\Component\DomCrawler\Field\FormField::initialize Symfony\Component\Dotenv\Exception\ExceptionInterface::getCode Symfony\Component\Dotenv\Exception\FormatException::getCode Symfony\Component\Dotenv\Exception\PathException::getCode Symfony\Component\ErrorHandler\ErrorHandler::handleException Symfony\Component\ErrorHandler\Error\ClassNotFoundError::getCode Symfony\Component\ErrorHandler\Error\FatalError::getCode Symfony\Component\ErrorHandler\Error\OutOfMemoryError::getCode Symfony\Component\ErrorHandler\Error\UndefinedFunctionError::getCode Symfony\Component\ErrorHandler\Error\UndefinedMethodError::getCode Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher::removeListener Symfony\Component\EventDispatcher\Debug\TraceableEventDispatcher::removeSubscriber Symfony\Component\EventDispatcher\EventDispatcherInterface::addListener Symfony\Component\EventDispatcher\EventDispatcherInterface::addSubscriber Symfony\Component\EventDispatcher\EventDispatcherInterface::removeListener Symfony\Component\EventDispatcher\EventDispatcherInterface::removeSubscriber Symfony\Component\EventDispatcher\ImmutableEventDispatcher::addListener Symfony\Component\EventDispatcher\ImmutableEventDispatcher::addSubscriber Symfony\Component\EventDispatcher\ImmutableEventDispatcher::removeListener Symfony\Component\EventDispatcher\ImmutableEventDispatcher::removeSubscriber Symfony\Component\ExpressionLanguage\Compiler::getFunction Symfony\Component\ExpressionLanguage\Node\Node::toArray Symfony\Component\ExpressionLanguage\Parser::parseExpression Symfony\Component\ExpressionLanguage\Parser::getPrimary Symfony\Component\ExpressionLanguage\SyntaxError::getCode Symfony\Component\Filesystem\Exception\ExceptionInterface::getCode Symfony\Component\Filesystem\Exception\FileNotFoundException::getCode Symfony\Component\Filesystem\Exception\IOException::getCode Symfony\Component\Filesystem\Exception\IOExceptionInterface::getCode Symfony\Component\Filesystem\Exception\InvalidArgumentException::getCode Symfony\Component\Filesystem\Exception\RuntimeException::getCode Symfony\Component\Filesystem\Filesystem::linkException Symfony\Component\Finder\Exception\AccessDeniedException::getCode Symfony\Component\Finder\Exception\DirectoryNotFoundException::getCode Symfony\Component\Finder\Iterator\CustomFilterIterator::rewind Symfony\Component\Finder\Iterator\CustomFilterIterator::next Symfony\Component\Finder\Iterator\CustomFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\CustomFilterIterator::valid Symfony\Component\Finder\Iterator\CustomFilterIterator::key Symfony\Component\Finder\Iterator\CustomFilterIterator::current Symfony\Component\Finder\Iterator\DateRangeFilterIterator::rewind Symfony\Component\Finder\Iterator\DateRangeFilterIterator::next Symfony\Component\Finder\Iterator\DateRangeFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\DateRangeFilterIterator::valid Symfony\Component\Finder\Iterator\DateRangeFilterIterator::key Symfony\Component\Finder\Iterator\DateRangeFilterIterator::current Symfony\Component\Finder\Iterator\DepthRangeFilterIterator::rewind Symfony\Component\Finder\Iterator\DepthRangeFilterIterator::next Symfony\Component\Finder\Iterator\DepthRangeFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\DepthRangeFilterIterator::valid Symfony\Component\Finder\Iterator\DepthRangeFilterIterator::key Symfony\Component\Finder\Iterator\DepthRangeFilterIterator::current Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::rewind Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::next Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::valid Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::key Symfony\Component\Finder\Iterator\ExcludeDirectoryFilterIterator::current Symfony\Component\Finder\Iterator\FileTypeFilterIterator::rewind Symfony\Component\Finder\Iterator\FileTypeFilterIterator::next Symfony\Component\Finder\Iterator\FileTypeFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\FileTypeFilterIterator::valid Symfony\Component\Finder\Iterator\FileTypeFilterIterator::key Symfony\Component\Finder\Iterator\FileTypeFilterIterator::current Symfony\Component\Finder\Iterator\FilecontentFilterIterator::rewind Symfony\Component\Finder\Iterator\FilecontentFilterIterator::next Symfony\Component\Finder\Iterator\FilecontentFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\FilecontentFilterIterator::valid Symfony\Component\Finder\Iterator\FilecontentFilterIterator::key Symfony\Component\Finder\Iterator\FilecontentFilterIterator::current Symfony\Component\Finder\Iterator\FilenameFilterIterator::rewind Symfony\Component\Finder\Iterator\FilenameFilterIterator::next Symfony\Component\Finder\Iterator\FilenameFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\FilenameFilterIterator::valid Symfony\Component\Finder\Iterator\FilenameFilterIterator::key Symfony\Component\Finder\Iterator\FilenameFilterIterator::current Symfony\Component\Finder\Iterator\MultiplePcreFilterIterator::accept Symfony\Component\Finder\Iterator\MultiplePcreFilterIterator::rewind Symfony\Component\Finder\Iterator\MultiplePcreFilterIterator::next Symfony\Component\Finder\Iterator\MultiplePcreFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\MultiplePcreFilterIterator::valid Symfony\Component\Finder\Iterator\MultiplePcreFilterIterator::key Symfony\Component\Finder\Iterator\MultiplePcreFilterIterator::current Symfony\Component\Finder\Iterator\PathFilterIterator::rewind Symfony\Component\Finder\Iterator\PathFilterIterator::next Symfony\Component\Finder\Iterator\PathFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\PathFilterIterator::valid Symfony\Component\Finder\Iterator\PathFilterIterator::key Symfony\Component\Finder\Iterator\PathFilterIterator::current Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getSubPath Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getSubPathname Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::key Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getFlags Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::setFlags Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getFilename Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getExtension Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getBasename Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::isDot Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::valid Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::next Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::seek Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getPath Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getPathname Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getPerms Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getInode Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getSize Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getOwner Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getGroup Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getATime Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getMTime Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getCTime Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getType Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::isWritable Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::isReadable Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::isExecutable Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::isFile Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::isDir Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::isLink Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getLinkTarget Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getRealPath Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getFileInfo Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::getPathInfo Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::openFile Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::setFileClass Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::setInfoClass Symfony\Component\Finder\Iterator\RecursiveDirectoryIterator::_bad_state_ex Symfony\Component\Finder\Iterator\SizeRangeFilterIterator::rewind Symfony\Component\Finder\Iterator\SizeRangeFilterIterator::next Symfony\Component\Finder\Iterator\SizeRangeFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\SizeRangeFilterIterator::valid Symfony\Component\Finder\Iterator\SizeRangeFilterIterator::key Symfony\Component\Finder\Iterator\SizeRangeFilterIterator::current Symfony\Component\Finder\Iterator\VcsIgnoredFilterIterator::rewind Symfony\Component\Finder\Iterator\VcsIgnoredFilterIterator::next Symfony\Component\Finder\Iterator\VcsIgnoredFilterIterator::getInnerIterator Symfony\Component\Finder\Iterator\VcsIgnoredFilterIterator::valid Symfony\Component\Finder\Iterator\VcsIgnoredFilterIterator::key Symfony\Component\Finder\Iterator\VcsIgnoredFilterIterator::current Symfony\Component\Finder\SplFileInfo::getPath Symfony\Component\Finder\SplFileInfo::getFilename Symfony\Component\Finder\SplFileInfo::getExtension Symfony\Component\Finder\SplFileInfo::getBasename Symfony\Component\Finder\SplFileInfo::getPathname Symfony\Component\Finder\SplFileInfo::getPerms Symfony\Component\Finder\SplFileInfo::getInode Symfony\Component\Finder\SplFileInfo::getSize Symfony\Component\Finder\SplFileInfo::getOwner Symfony\Component\Finder\SplFileInfo::getGroup Symfony\Component\Finder\SplFileInfo::getATime Symfony\Component\Finder\SplFileInfo::getMTime Symfony\Component\Finder\SplFileInfo::getCTime Symfony\Component\Finder\SplFileInfo::getType Symfony\Component\Finder\SplFileInfo::isWritable Symfony\Component\Finder\SplFileInfo::isReadable Symfony\Component\Finder\SplFileInfo::isExecutable Symfony\Component\Finder\SplFileInfo::isFile Symfony\Component\Finder\SplFileInfo::isDir Symfony\Component\Finder\SplFileInfo::isLink Symfony\Component\Finder\SplFileInfo::getLinkTarget Symfony\Component\Finder\SplFileInfo::getRealPath Symfony\Component\Finder\SplFileInfo::getFileInfo Symfony\Component\Finder\SplFileInfo::getPathInfo Symfony\Component\Finder\SplFileInfo::openFile Symfony\Component\Finder\SplFileInfo::setFileClass Symfony\Component\Finder\SplFileInfo::setInfoClass Symfony\Component\Finder\SplFileInfo::_bad_state_ex Symfony\Component\Form\ButtonTypeInterface::buildForm Symfony\Component\Form\ButtonTypeInterface::buildView Symfony\Component\Form\ButtonTypeInterface::finishView Symfony\Component\Form\ButtonTypeInterface::configureOptions Symfony\Component\Form\Console\Helper\DescriptorHelper::formatTime Symfony\Component\Form\DataMapperInterface::mapDataToForms Symfony\Component\Form\DataMapperInterface::mapFormsToData Symfony\Component\Form\Exception\AccessException::getCode Symfony\Component\Form\Exception\AlreadySubmittedException::getCode Symfony\Component\Form\Exception\BadMethodCallException::getCode Symfony\Component\Form\Exception\ErrorMappingException::getCode Symfony\Component\Form\Exception\ExceptionInterface::getCode Symfony\Component\Form\Exception\InvalidArgumentException::getCode Symfony\Component\Form\Exception\InvalidConfigurationException::getCode Symfony\Component\Form\Exception\LogicException::getCode Symfony\Component\Form\Exception\OutOfBoundsException::getCode Symfony\Component\Form\Exception\RuntimeException::getCode Symfony\Component\Form\Exception\StringCastException::getCode Symfony\Component\Form\Exception\TransformationFailedException::getCode Symfony\Component\Form\Exception\UnexpectedTypeException::getCode Symfony\Component\Form\Extension\Core\DataAccessor\PropertyPathAccessor::getPropertyValue Symfony\Component\Form\Extension\Core\Type\ChoiceType::addSubForms Symfony\Component\Form\Extension\Core\Type\ChoiceType::addSubForm Symfony\Component\Form\Extension\Core\Type\MoneyType::getPattern Symfony\Component\Form\Extension\DataCollector\FormDataCollector::recursiveBuildPreliminaryFormTree Symfony\Component\Form\Extension\DataCollector\FormDataCollector::recursiveBuildFinalFormTree Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::collectConfiguration Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::collectDefaultData Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::collectSubmittedData Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::collectViewVariables Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::associateFormWithView Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::buildPreliminaryFormTree Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::buildFinalFormTree Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationMapperInterface::mapViolation Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::mapsForm Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::offsetExists Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::offsetGet Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::offsetSet Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::offsetUnset Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::append Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::getArrayCopy Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::count Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::getFlags Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::setFlags Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::asort Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::ksort Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::uasort Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::uksort Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::natsort Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::natcasesort Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::unserialize Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::serialize Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::rewind Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::current Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::key Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::next Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::valid Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::seek Symfony\Component\Form\FormBuilderInterface::count Symfony\Component\Form\FormInterface::offsetExists Symfony\Component\Form\FormInterface::offsetGet Symfony\Component\Form\FormInterface::offsetSet Symfony\Component\Form\FormInterface::offsetUnset Symfony\Component\Form\FormInterface::count Symfony\Component\Form\FormRendererEngineInterface::setTheme Symfony\Component\Form\FormRendererInterface::setTheme Symfony\Component\Form\FormTypeExtensionInterface::buildForm Symfony\Component\Form\FormTypeExtensionInterface::buildView Symfony\Component\Form\FormTypeExtensionInterface::finishView Symfony\Component\Form\FormTypeExtensionInterface::configureOptions Symfony\Component\Form\FormTypeInterface::buildForm Symfony\Component\Form\FormTypeInterface::buildView Symfony\Component\Form\FormTypeInterface::finishView Symfony\Component\Form\FormTypeInterface::configureOptions Symfony\Component\Form\RequestHandlerInterface::handleRequest Symfony\Component\Form\ResolvedFormTypeInterface::buildForm Symfony\Component\Form\ResolvedFormTypeInterface::buildView Symfony\Component\Form\ResolvedFormTypeInterface::finishView Symfony\Component\Form\SubmitButtonTypeInterface::buildForm Symfony\Component\Form\SubmitButtonTypeInterface::buildView Symfony\Component\Form\SubmitButtonTypeInterface::finishView Symfony\Component\Form\SubmitButtonTypeInterface::configureOptions Symfony\Component\Form\Test\FormBuilderInterface::current Symfony\Component\Form\Test\FormBuilderInterface::next Symfony\Component\Form\Test\FormBuilderInterface::key Symfony\Component\Form\Test\FormBuilderInterface::valid Symfony\Component\Form\Test\FormBuilderInterface::rewind Symfony\Component\Form\Test\FormBuilderInterface::count Symfony\Component\Form\Test\FormIntegrationTestCase::getExtensions Symfony\Component\Form\Test\FormIntegrationTestCase::getTypeExtensions Symfony\Component\Form\Test\FormIntegrationTestCase::getTypes Symfony\Component\Form\Test\FormIntegrationTestCase::getTypeGuessers Symfony\Component\Form\Test\FormIntegrationTestCase::getResult Symfony\Component\Form\Test\FormIntegrationTestCase::runTest Symfony\Component\Form\Test\FormInterface::current Symfony\Component\Form\Test\FormInterface::next Symfony\Component\Form\Test\FormInterface::key Symfony\Component\Form\Test\FormInterface::valid Symfony\Component\Form\Test\FormInterface::rewind Symfony\Component\Form\Test\FormInterface::offsetExists Symfony\Component\Form\Test\FormInterface::offsetGet Symfony\Component\Form\Test\FormInterface::offsetSet Symfony\Component\Form\Test\FormInterface::offsetUnset Symfony\Component\Form\Test\FormInterface::count Symfony\Component\Form\Test\FormPerformanceTestCase::runTest Symfony\Component\Form\Test\FormPerformanceTestCase::setMaxRunningTime Symfony\Component\Form\Test\FormPerformanceTestCase::getExtensions Symfony\Component\Form\Test\FormPerformanceTestCase::getTypeExtensions Symfony\Component\Form\Test\FormPerformanceTestCase::getTypes Symfony\Component\Form\Test\FormPerformanceTestCase::getTypeGuessers Symfony\Component\Form\Test\FormPerformanceTestCase::getResult Symfony\Component\Form\Test\FormPerformanceTestCase::requiresFeatureSet Symfony\Component\Form\Test\TypeTestCase::getExtensions Symfony\Component\Form\Test\TypeTestCase::assertDateTimeEquals Symfony\Component\Form\Test\TypeTestCase::assertDateIntervalEquals Symfony\Component\Form\Test\TypeTestCase::getTypeExtensions Symfony\Component\Form\Test\TypeTestCase::getTypes Symfony\Component\Form\Test\TypeTestCase::getTypeGuessers Symfony\Component\Form\Test\TypeTestCase::getResult Symfony\Component\Form\Test\TypeTestCase::runTest Symfony\Component\Form\Util\InheritDataAwareIterator::getInnerIterator Symfony\Component\Form\Util\InheritDataAwareIterator::rewind Symfony\Component\Form\Util\InheritDataAwareIterator::valid Symfony\Component\Form\Util\InheritDataAwareIterator::key Symfony\Component\Form\Util\InheritDataAwareIterator::current Symfony\Component\Form\Util\InheritDataAwareIterator::next Symfony\Component\HttpClient\Exception\ClientException::getCode Symfony\Component\HttpClient\Exception\EventSourceException::getCode Symfony\Component\HttpClient\Exception\InvalidArgumentException::getCode Symfony\Component\HttpClient\Exception\JsonException::getCode Symfony\Component\HttpClient\Exception\RedirectionException::getCode Symfony\Component\HttpClient\Exception\ServerException::getCode Symfony\Component\HttpClient\Exception\TimeoutException::getCode Symfony\Component\HttpClient\Exception\TransportException::getCode Symfony\Component\HttpClient\Response\AmpResponse::toStream Symfony\Component\HttpClient\Response\AsyncResponse::toStream Symfony\Component\HttpClient\Response\CommonResponseTrait::toStream Symfony\Component\HttpClient\Response\CurlResponse::toStream Symfony\Component\HttpClient\Response\MockResponse::toStream Symfony\Component\HttpClient\Response\NativeResponse::toStream Symfony\Component\HttpClient\Response\StreamWrapper::stream_cast Symfony\Component\HttpFoundation\Exception\BadRequestException::getCode Symfony\Component\HttpFoundation\Exception\ConflictingHeadersException::getCode Symfony\Component\HttpFoundation\Exception\JsonException::getCode Symfony\Component\HttpFoundation\Exception\SessionNotFoundException::getCode Symfony\Component\HttpFoundation\Exception\SuspiciousOperationException::getCode Symfony\Component\HttpFoundation\File\Exception\AccessDeniedException::getCode Symfony\Component\HttpFoundation\File\Exception\CannotWriteFileException::getCode Symfony\Component\HttpFoundation\File\Exception\ExtensionFileException::getCode Symfony\Component\HttpFoundation\File\Exception\FileException::getCode Symfony\Component\HttpFoundation\File\Exception\FileNotFoundException::getCode Symfony\Component\HttpFoundation\File\Exception\FormSizeFileException::getCode Symfony\Component\HttpFoundation\File\Exception\IniSizeFileException::getCode Symfony\Component\HttpFoundation\File\Exception\NoFileException::getCode Symfony\Component\HttpFoundation\File\Exception\NoTmpDirFileException::getCode Symfony\Component\HttpFoundation\File\Exception\PartialFileException::getCode Symfony\Component\HttpFoundation\File\Exception\UnexpectedTypeException::getCode Symfony\Component\HttpFoundation\File\Exception\UploadException::getCode Symfony\Component\HttpFoundation\File\File::getPath Symfony\Component\HttpFoundation\File\File::getFilename Symfony\Component\HttpFoundation\File\File::getExtension Symfony\Component\HttpFoundation\File\File::getBasename Symfony\Component\HttpFoundation\File\File::getPathname Symfony\Component\HttpFoundation\File\File::getPerms Symfony\Component\HttpFoundation\File\File::getInode Symfony\Component\HttpFoundation\File\File::getSize Symfony\Component\HttpFoundation\File\File::getOwner Symfony\Component\HttpFoundation\File\File::getGroup Symfony\Component\HttpFoundation\File\File::getATime Symfony\Component\HttpFoundation\File\File::getMTime Symfony\Component\HttpFoundation\File\File::getCTime Symfony\Component\HttpFoundation\File\File::getType Symfony\Component\HttpFoundation\File\File::isWritable Symfony\Component\HttpFoundation\File\File::isReadable Symfony\Component\HttpFoundation\File\File::isExecutable Symfony\Component\HttpFoundation\File\File::isFile Symfony\Component\HttpFoundation\File\File::isDir Symfony\Component\HttpFoundation\File\File::isLink Symfony\Component\HttpFoundation\File\File::getLinkTarget Symfony\Component\HttpFoundation\File\File::getRealPath Symfony\Component\HttpFoundation\File\File::getFileInfo Symfony\Component\HttpFoundation\File\File::getPathInfo Symfony\Component\HttpFoundation\File\File::openFile Symfony\Component\HttpFoundation\File\File::setFileClass Symfony\Component\HttpFoundation\File\File::setInfoClass Symfony\Component\HttpFoundation\File\File::_bad_state_ex Symfony\Component\HttpFoundation\File\Stream::getPath Symfony\Component\HttpFoundation\File\Stream::getFilename Symfony\Component\HttpFoundation\File\Stream::getExtension Symfony\Component\HttpFoundation\File\Stream::getBasename Symfony\Component\HttpFoundation\File\Stream::getPathname Symfony\Component\HttpFoundation\File\Stream::getPerms Symfony\Component\HttpFoundation\File\Stream::getInode Symfony\Component\HttpFoundation\File\Stream::getOwner Symfony\Component\HttpFoundation\File\Stream::getGroup Symfony\Component\HttpFoundation\File\Stream::getATime Symfony\Component\HttpFoundation\File\Stream::getMTime Symfony\Component\HttpFoundation\File\Stream::getCTime Symfony\Component\HttpFoundation\File\Stream::getType Symfony\Component\HttpFoundation\File\Stream::isWritable Symfony\Component\HttpFoundation\File\Stream::isReadable Symfony\Component\HttpFoundation\File\Stream::isExecutable Symfony\Component\HttpFoundation\File\Stream::isFile Symfony\Component\HttpFoundation\File\Stream::isDir Symfony\Component\HttpFoundation\File\Stream::isLink Symfony\Component\HttpFoundation\File\Stream::getLinkTarget Symfony\Component\HttpFoundation\File\Stream::getRealPath Symfony\Component\HttpFoundation\File\Stream::getFileInfo Symfony\Component\HttpFoundation\File\Stream::getPathInfo Symfony\Component\HttpFoundation\File\Stream::openFile Symfony\Component\HttpFoundation\File\Stream::setFileClass Symfony\Component\HttpFoundation\File\Stream::setInfoClass Symfony\Component\HttpFoundation\File\Stream::_bad_state_ex Symfony\Component\HttpFoundation\File\UploadedFile::getPath Symfony\Component\HttpFoundation\File\UploadedFile::getFilename Symfony\Component\HttpFoundation\File\UploadedFile::getExtension Symfony\Component\HttpFoundation\File\UploadedFile::getBasename Symfony\Component\HttpFoundation\File\UploadedFile::getPathname Symfony\Component\HttpFoundation\File\UploadedFile::getPerms Symfony\Component\HttpFoundation\File\UploadedFile::getInode Symfony\Component\HttpFoundation\File\UploadedFile::getSize Symfony\Component\HttpFoundation\File\UploadedFile::getOwner Symfony\Component\HttpFoundation\File\UploadedFile::getGroup Symfony\Component\HttpFoundation\File\UploadedFile::getATime Symfony\Component\HttpFoundation\File\UploadedFile::getMTime Symfony\Component\HttpFoundation\File\UploadedFile::getCTime Symfony\Component\HttpFoundation\File\UploadedFile::getType Symfony\Component\HttpFoundation\File\UploadedFile::isWritable Symfony\Component\HttpFoundation\File\UploadedFile::isReadable Symfony\Component\HttpFoundation\File\UploadedFile::isExecutable Symfony\Component\HttpFoundation\File\UploadedFile::isFile Symfony\Component\HttpFoundation\File\UploadedFile::isDir Symfony\Component\HttpFoundation\File\UploadedFile::isLink Symfony\Component\HttpFoundation\File\UploadedFile::getLinkTarget Symfony\Component\HttpFoundation\File\UploadedFile::getRealPath Symfony\Component\HttpFoundation\File\UploadedFile::getFileInfo Symfony\Component\HttpFoundation\File\UploadedFile::getPathInfo Symfony\Component\HttpFoundation\File\UploadedFile::openFile Symfony\Component\HttpFoundation\File\UploadedFile::setFileClass Symfony\Component\HttpFoundation\File\UploadedFile::setInfoClass Symfony\Component\HttpFoundation\File\UploadedFile::_bad_state_ex Symfony\Component\HttpFoundation\Request::prepareRequestUri Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface::set Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface::replace Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface::initialize Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::setId Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::setName Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::save Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::set Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::replace Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::clear Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::registerBag Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface::add Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface::set Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface::setAll Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface::initialize Symfony\Component\HttpFoundation\Session\SessionBagInterface::initialize Symfony\Component\HttpFoundation\Session\SessionInterface::setId Symfony\Component\HttpFoundation\Session\SessionInterface::setName Symfony\Component\HttpFoundation\Session\SessionInterface::save Symfony\Component\HttpFoundation\Session\SessionInterface::set Symfony\Component\HttpFoundation\Session\SessionInterface::replace Symfony\Component\HttpFoundation\Session\SessionInterface::clear Symfony\Component\HttpFoundation\Session\SessionInterface::registerBag Symfony\Component\HttpFoundation\Session\Storage\Handler\AbstractSessionHandler::close Symfony\Component\HttpFoundation\Session\Storage\Handler\AbstractSessionHandler::gc Symfony\Component\HttpFoundation\Session\Storage\Handler\AbstractSessionHandler::updateTimestamp Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler::open Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler::close Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler::read Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler::write Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler::destroy Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler::gc Symfony\Component\HttpFoundation\Session\Storage\Handler\NativeFileSessionHandler::create_sid Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::setId Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::setName Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::save Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::clear Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::registerBag Symfony\Component\HttpKernel\Bundle\BundleInterface::boot Symfony\Component\HttpKernel\Bundle\BundleInterface::shutdown Symfony\Component\HttpKernel\Bundle\BundleInterface::build Symfony\Component\HttpKernel\Bundle\BundleInterface::setContainer Symfony\Component\HttpKernel\CacheClearer\CacheClearerInterface::clear Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector::getBundles Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getLogs Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getProcessedLogs Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getFilters Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getPriorities Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::countErrors Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::countDeprecations Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::countWarnings Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::countScreams Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getCompilerLogs Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getMethod Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getPathInfo Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getSessionMetadata Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getSessionAttributes Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getStatelessCheck Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getSessionUsages Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getFlashes Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getContent Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getContentType Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getStatusText Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getStatusCode Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getFormat Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getLocale Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getIdentifier Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getForwardToken Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher::removeListener Symfony\Component\HttpKernel\Debug\TraceableEventDispatcher::removeSubscriber Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension::loadInternal Symfony\Component\HttpKernel\DependencyInjection\Extension::load Symfony\Component\HttpKernel\Exception\AccessDeniedHttpException::getCode Symfony\Component\HttpKernel\Exception\BadRequestHttpException::getCode Symfony\Component\HttpKernel\Exception\ConflictHttpException::getCode Symfony\Component\HttpKernel\Exception\ControllerDoesNotReturnResponseException::getCode Symfony\Component\HttpKernel\Exception\GoneHttpException::getCode Symfony\Component\HttpKernel\Exception\HttpException::getCode Symfony\Component\HttpKernel\Exception\HttpExceptionInterface::getCode Symfony\Component\HttpKernel\Exception\InvalidMetadataException::getCode Symfony\Component\HttpKernel\Exception\LengthRequiredHttpException::getCode Symfony\Component\HttpKernel\Exception\LockedHttpException::getCode Symfony\Component\HttpKernel\Exception\MethodNotAllowedHttpException::getCode Symfony\Component\HttpKernel\Exception\NotAcceptableHttpException::getCode Symfony\Component\HttpKernel\Exception\NotFoundHttpException::getCode Symfony\Component\HttpKernel\Exception\PreconditionFailedHttpException::getCode Symfony\Component\HttpKernel\Exception\PreconditionRequiredHttpException::getCode Symfony\Component\HttpKernel\Exception\ServiceUnavailableHttpException::getCode Symfony\Component\HttpKernel\Exception\TooManyRequestsHttpException::getCode Symfony\Component\HttpKernel\Exception\UnauthorizedHttpException::getCode Symfony\Component\HttpKernel\Exception\UnexpectedSessionUsageException::getCode Symfony\Component\HttpKernel\Exception\UnprocessableEntityHttpException::getCode Symfony\Component\HttpKernel\Exception\UnsupportedMediaTypeHttpException::getCode Symfony\Component\HttpKernel\HttpCache\AbstractSurrogate::addSurrogateControl Symfony\Component\HttpKernel\HttpCache\ResponseCacheStrategyInterface::add Symfony\Component\HttpKernel\HttpCache\ResponseCacheStrategyInterface::update Symfony\Component\HttpKernel\HttpCache\StoreInterface::invalidate Symfony\Component\HttpKernel\HttpCache\StoreInterface::cleanup Symfony\Component\HttpKernel\HttpCache\SurrogateInterface::addSurrogateCapability Symfony\Component\HttpKernel\HttpCache\SurrogateInterface::addSurrogateControl Symfony\Component\HttpKernel\Kernel::registerContainerConfiguration Symfony\Component\HttpKernel\KernelInterface::registerContainerConfiguration Symfony\Component\HttpKernel\KernelInterface::boot Symfony\Component\HttpKernel\KernelInterface::shutdown Symfony\Component\HttpKernel\Log\DebugLoggerInterface::clear Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface::purge Symfony\Component\HttpKernel\RebootableInterface::reboot Symfony\Component\HttpKernel\TerminableInterface::terminate Symfony\Component\Intl\Data\Bundle\Compiler\BundleCompilerInterface::compile Symfony\Component\Intl\Data\Bundle\Writer\BundleWriterInterface::write Symfony\Component\Intl\Data\Generator\AbstractDataGenerator::compileTemporaryBundles Symfony\Component\Intl\Data\Generator\AbstractDataGenerator::preGenerate Symfony\Component\Intl\Data\Util\ArrayAccessibleResourceBundle::get Symfony\Component\Intl\Data\Util\RecursiveArrayAccess::get Symfony\Component\Intl\Exception\BadMethodCallException::getCode Symfony\Component\Intl\Exception\ExceptionInterface::getCode Symfony\Component\Intl\Exception\InvalidArgumentException::getCode Symfony\Component\Intl\Exception\MissingResourceException::getCode Symfony\Component\Intl\Exception\OutOfBoundsException::getCode Symfony\Component\Intl\Exception\ResourceBundleNotFoundException::getCode Symfony\Component\Intl\Exception\RuntimeException::getCode Symfony\Component\Intl\Exception\UnexpectedTypeException::getCode Symfony\Component\Intl\Locale::getDefault Symfony\Component\Intl\Locale::setDefault Symfony\Component\Intl\Locale::getPrimaryLanguage Symfony\Component\Intl\Locale::getScript Symfony\Component\Intl\Locale::getRegion Symfony\Component\Intl\Locale::getKeywords Symfony\Component\Intl\Locale::getDisplayScript Symfony\Component\Intl\Locale::getDisplayRegion Symfony\Component\Intl\Locale::getDisplayName Symfony\Component\Intl\Locale::getDisplayLanguage Symfony\Component\Intl\Locale::getDisplayVariant Symfony\Component\Intl\Locale::composeLocale Symfony\Component\Intl\Locale::parseLocale Symfony\Component\Intl\Locale::getAllVariants Symfony\Component\Intl\Locale::filterMatches Symfony\Component\Intl\Locale::lookup Symfony\Component\Intl\Locale::canonicalize Symfony\Component\Intl\Locale::acceptFromHttp Symfony\Component\Intl\Transliterator\EmojiTransliterator::createFromRules Symfony\Component\Ldap\Adapter\AbstractConnection::bind Symfony\Component\Ldap\Adapter\CollectionInterface::count Symfony\Component\Ldap\Adapter\CollectionInterface::getIterator Symfony\Component\Ldap\Adapter\CollectionInterface::offsetExists Symfony\Component\Ldap\Adapter\CollectionInterface::offsetGet Symfony\Component\Ldap\Adapter\CollectionInterface::offsetSet Symfony\Component\Ldap\Adapter\CollectionInterface::offsetUnset Symfony\Component\Ldap\Adapter\ConnectionInterface::bind Symfony\Component\Ldap\Exception\AlreadyExistsException::getCode Symfony\Component\Ldap\Exception\ConnectionException::getCode Symfony\Component\Ldap\Exception\ConnectionTimeoutException::getCode Symfony\Component\Ldap\Exception\DriverNotFoundException::getCode Symfony\Component\Ldap\Exception\ExceptionInterface::getCode Symfony\Component\Ldap\Exception\InvalidCredentialsException::getCode Symfony\Component\Ldap\Exception\InvalidSearchCredentialsException::getCode Symfony\Component\Ldap\Exception\LdapException::getCode Symfony\Component\Ldap\Exception\NotBoundException::getCode Symfony\Component\Ldap\Exception\UpdateOperationException::getCode Symfony\Component\Ldap\LdapInterface::bind Symfony\Component\Ldap\Security\LdapUserProvider::getAttributeValue Symfony\Component\Lock\BlockingSharedLockStoreInterface::waitAndSaveRead Symfony\Component\Lock\BlockingSharedLockStoreInterface::saveRead Symfony\Component\Lock\BlockingSharedLockStoreInterface::save Symfony\Component\Lock\BlockingSharedLockStoreInterface::delete Symfony\Component\Lock\BlockingSharedLockStoreInterface::putOffExpiration Symfony\Component\Lock\BlockingStoreInterface::waitAndSave Symfony\Component\Lock\BlockingStoreInterface::save Symfony\Component\Lock\BlockingStoreInterface::delete Symfony\Component\Lock\BlockingStoreInterface::putOffExpiration Symfony\Component\Lock\Exception\ExceptionInterface::getCode Symfony\Component\Lock\Exception\InvalidArgumentException::getCode Symfony\Component\Lock\Exception\InvalidTtlException::getCode Symfony\Component\Lock\Exception\LockAcquiringException::getCode Symfony\Component\Lock\Exception\LockConflictedException::getCode Symfony\Component\Lock\Exception\LockExpiredException::getCode Symfony\Component\Lock\Exception\LockReleasingException::getCode Symfony\Component\Lock\Exception\LockStorageException::getCode Symfony\Component\Lock\Exception\UnserializableKeyException::getCode Symfony\Component\Lock\LockInterface::refresh Symfony\Component\Lock\LockInterface::release Symfony\Component\Lock\PersistingStoreInterface::save Symfony\Component\Lock\PersistingStoreInterface::delete Symfony\Component\Lock\PersistingStoreInterface::putOffExpiration Symfony\Component\Lock\SharedLockInterface::refresh Symfony\Component\Lock\SharedLockInterface::release Symfony\Component\Lock\SharedLockStoreInterface::saveRead Symfony\Component\Lock\SharedLockStoreInterface::save Symfony\Component\Lock\SharedLockStoreInterface::delete Symfony\Component\Lock\SharedLockStoreInterface::putOffExpiration Symfony\Component\Mailer\Bridge\Mailjet\Transport\MailjetApiTransport::castCustomHeader Symfony\Component\Mailer\Exception\ExceptionInterface::getCode Symfony\Component\Mailer\Exception\HttpTransportException::getCode Symfony\Component\Mailer\Exception\IncompleteDsnException::getCode Symfony\Component\Mailer\Exception\InvalidArgumentException::getCode Symfony\Component\Mailer\Exception\LogicException::getCode Symfony\Component\Mailer\Exception\RuntimeException::getCode Symfony\Component\Mailer\Exception\TransportException::getCode Symfony\Component\Mailer\Exception\TransportExceptionInterface::getCode Symfony\Component\Mailer\Exception\UnsupportedSchemeException::getCode Symfony\Component\Mailer\Test\TransportFactoryTestCase::testSupports Symfony\Component\Mailer\Test\TransportFactoryTestCase::testCreate Symfony\Component\Mailer\Test\TransportFactoryTestCase::testUnsupportedSchemeException Symfony\Component\Mailer\Test\TransportFactoryTestCase::testIncompleteDsnException Symfony\Component\Mailer\Test\TransportFactoryTestCase::getResult Symfony\Component\Mailer\Test\TransportFactoryTestCase::runTest Symfony\Component\Mailer\Transport\Dsn::getOption Symfony\Component\Messenger\Bridge\Doctrine\Transport\Connection::executeQuery Symfony\Component\Messenger\Bridge\Doctrine\Transport\Connection::executeStatement Symfony\Component\Messenger\Bridge\Doctrine\Transport\PostgreSqlConnection::executeStatement Symfony\Component\Messenger\Command\AbstractFailedMessagesCommand::interactiveChooseFailureTransport Symfony\Component\Messenger\Command\FailedMessagesRemoveCommand::interactiveChooseFailureTransport Symfony\Component\Messenger\Command\FailedMessagesRetryCommand::interactiveChooseFailureTransport Symfony\Component\Messenger\Command\FailedMessagesShowCommand::interactiveChooseFailureTransport Symfony\Component\Messenger\DataCollector\MessengerDataCollector::registerBus Symfony\Component\Messenger\Exception\DelayedMessageHandlingException::getCode Symfony\Component\Messenger\Exception\ExceptionInterface::getCode Symfony\Component\Messenger\Exception\HandlerFailedException::getCode Symfony\Component\Messenger\Exception\InvalidArgumentException::getCode Symfony\Component\Messenger\Exception\LogicException::getCode Symfony\Component\Messenger\Exception\MessageDecodingFailedException::getCode Symfony\Component\Messenger\Exception\NoHandlerForMessageException::getCode Symfony\Component\Messenger\Exception\NoSenderForMessageException::getCode Symfony\Component\Messenger\Exception\RecoverableExceptionInterface::getCode Symfony\Component\Messenger\Exception\RecoverableMessageHandlingException::getCode Symfony\Component\Messenger\Exception\RejectRedeliveredMessageException::getCode Symfony\Component\Messenger\Exception\RuntimeException::getCode Symfony\Component\Messenger\Exception\StopWorkerException::getCode Symfony\Component\Messenger\Exception\StopWorkerExceptionInterface::getCode Symfony\Component\Messenger\Exception\TransportException::getCode Symfony\Component\Messenger\Exception\UnrecoverableExceptionInterface::getCode Symfony\Component\Messenger\Exception\UnrecoverableMessageHandlingException::getCode Symfony\Component\Messenger\Exception\ValidationFailedException::getCode Symfony\Component\Messenger\Handler\HandlerDescriptor::getOption Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase::getStackMock Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase::getThrowingStackMock Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase::getResult Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase::runTest Symfony\Component\Messenger\Transport\Serialization\PhpSerializer::handleUnserializeCallback Symfony\Component\Mime\Exception\AddressEncoderException::getCode Symfony\Component\Mime\Exception\ExceptionInterface::getCode Symfony\Component\Mime\Exception\InvalidArgumentException::getCode Symfony\Component\Mime\Exception\LogicException::getCode Symfony\Component\Mime\Exception\RfcComplianceException::getCode Symfony\Component\Mime\Exception\RuntimeException::getCode Symfony\Component\Mime\Header\AbstractHeader::setBody Symfony\Component\Mime\Header\HeaderInterface::setBody Symfony\Component\Mime\Header\HeaderInterface::setCharset Symfony\Component\Mime\Header\HeaderInterface::setLanguage Symfony\Component\Mime\Header\HeaderInterface::setMaxLineLength Symfony\Component\Mime\Header\Headers::getHeaderBody Symfony\Component\Notifier\Bridge\MicrosoftTeams\Test\Action\Input\AbstractInputTestCase::testId Symfony\Component\Notifier\Bridge\MicrosoftTeams\Test\Action\Input\AbstractInputTestCase::testIsRequiredWithFalse Symfony\Component\Notifier\Bridge\MicrosoftTeams\Test\Action\Input\AbstractInputTestCase::testIsRequiredWithTrue Symfony\Component\Notifier\Bridge\MicrosoftTeams\Test\Action\Input\AbstractInputTestCase::testTitle Symfony\Component\Notifier\Bridge\MicrosoftTeams\Test\Action\Input\AbstractInputTestCase::testValue Symfony\Component\Notifier\Bridge\MicrosoftTeams\Test\Action\Input\AbstractInputTestCase::getResult Symfony\Component\Notifier\Bridge\MicrosoftTeams\Test\Action\Input\AbstractInputTestCase::runTest Symfony\Component\Notifier\Exception\ExceptionInterface::getCode Symfony\Component\Notifier\Exception\FlashMessageImportanceMapperException::getCode Symfony\Component\Notifier\Exception\IncompleteDsnException::getCode Symfony\Component\Notifier\Exception\InvalidArgumentException::getCode Symfony\Component\Notifier\Exception\LengthException::getCode Symfony\Component\Notifier\Exception\LogicException::getCode Symfony\Component\Notifier\Exception\MissingRequiredOptionException::getCode Symfony\Component\Notifier\Exception\RuntimeException::getCode Symfony\Component\Notifier\Exception\TransportException::getCode Symfony\Component\Notifier\Exception\TransportExceptionInterface::getCode Symfony\Component\Notifier\Exception\UnsupportedMessageTypeException::getCode Symfony\Component\Notifier\Exception\UnsupportedSchemeException::getCode Symfony\Component\Notifier\Test\TransportFactoryTestCase::testSupports Symfony\Component\Notifier\Test\TransportFactoryTestCase::testCreate Symfony\Component\Notifier\Test\TransportFactoryTestCase::testUnsupportedSchemeException Symfony\Component\Notifier\Test\TransportFactoryTestCase::testIncompleteDsnException Symfony\Component\Notifier\Test\TransportFactoryTestCase::testMissingRequiredOptionException Symfony\Component\Notifier\Test\TransportFactoryTestCase::getResult Symfony\Component\Notifier\Test\TransportFactoryTestCase::runTest Symfony\Component\Notifier\Test\TransportTestCase::testToString Symfony\Component\Notifier\Test\TransportTestCase::testSupportedMessages Symfony\Component\Notifier\Test\TransportTestCase::testUnsupportedMessages Symfony\Component\Notifier\Test\TransportTestCase::testUnsupportedMessagesTrowUnsupportedMessageTypeExceptionWhenSend Symfony\Component\Notifier\Test\TransportTestCase::testCanSetCustomHost Symfony\Component\Notifier\Test\TransportTestCase::testCanSetCustomPort Symfony\Component\Notifier\Test\TransportTestCase::testCanSetCustomHostAndPort Symfony\Component\Notifier\Test\TransportTestCase::getResult Symfony\Component\Notifier\Test\TransportTestCase::runTest Symfony\Component\Notifier\Transport\Dsn::getOption Symfony\Component\Notifier\Transport\Dsn::getRequiredOption Symfony\Component\OptionsResolver\Exception\AccessException::getCode Symfony\Component\OptionsResolver\Exception\ExceptionInterface::getCode Symfony\Component\OptionsResolver\Exception\InvalidArgumentException::getCode Symfony\Component\OptionsResolver\Exception\InvalidOptionsException::getCode Symfony\Component\OptionsResolver\Exception\MissingOptionsException::getCode Symfony\Component\OptionsResolver\Exception\NoConfigurationException::getCode Symfony\Component\OptionsResolver\Exception\NoSuchOptionException::getCode Symfony\Component\OptionsResolver\Exception\OptionDefinitionException::getCode Symfony\Component\OptionsResolver\Exception\UndefinedOptionsException::getCode Symfony\Component\OptionsResolver\Options::offsetExists Symfony\Component\OptionsResolver\Options::offsetGet Symfony\Component\OptionsResolver\Options::offsetSet Symfony\Component\OptionsResolver\Options::offsetUnset Symfony\Component\OptionsResolver\Options::count Symfony\Component\PasswordHasher\Exception\ExceptionInterface::getCode Symfony\Component\PasswordHasher\Exception\InvalidPasswordException::getCode Symfony\Component\PasswordHasher\Exception\LogicException::getCode Symfony\Component\Process\Exception\ExceptionInterface::getCode Symfony\Component\Process\Exception\InvalidArgumentException::getCode Symfony\Component\Process\Exception\LogicException::getCode Symfony\Component\Process\Exception\ProcessFailedException::getProcess Symfony\Component\Process\Exception\ProcessFailedException::getCode Symfony\Component\Process\Exception\ProcessSignaledException::getCode Symfony\Component\Process\Exception\ProcessTimedOutException::getProcess Symfony\Component\Process\Exception\ProcessTimedOutException::getExceededTimeout Symfony\Component\Process\Exception\ProcessTimedOutException::getCode Symfony\Component\Process\Exception\RuntimeException::getCode Symfony\Component\Process\PhpProcess::addOutput Symfony\Component\Process\PhpProcess::addErrorOutput Symfony\Component\Process\PhpProcess::checkTimeout Symfony\Component\Process\PhpProcess::setOptions Symfony\Component\Process\PhpProcess::updateStatus Symfony\Component\Process\Process::start Symfony\Component\Process\Process::addOutput Symfony\Component\Process\Process::addErrorOutput Symfony\Component\Process\Process::checkTimeout Symfony\Component\Process\Process::setOptions Symfony\Component\Process\Process::updateStatus Symfony\Component\Process\Process::readPipesForOutput Symfony\Component\Process\Process::readPipes Symfony\Component\Process\Process::resetProcessData Symfony\Component\Process\Process::requireProcessIsStarted Symfony\Component\Process\Process::requireProcessIsTerminated Symfony\Component\PropertyAccess\Exception\AccessException::getCode Symfony\Component\PropertyAccess\Exception\ExceptionInterface::getCode Symfony\Component\PropertyAccess\Exception\InvalidArgumentException::getCode Symfony\Component\PropertyAccess\Exception\InvalidPropertyPathException::getCode Symfony\Component\PropertyAccess\Exception\NoSuchIndexException::getCode Symfony\Component\PropertyAccess\Exception\NoSuchPropertyException::getCode Symfony\Component\PropertyAccess\Exception\OutOfBoundsException::getCode Symfony\Component\PropertyAccess\Exception\RuntimeException::getCode Symfony\Component\PropertyAccess\Exception\UnexpectedTypeException::getCode Symfony\Component\PropertyAccess\Exception\UninitializedPropertyException::getCode Symfony\Component\PropertyAccess\PropertyAccessorInterface::setValue Symfony\Component\PropertyAccess\PropertyPathIterator::offsetExists Symfony\Component\PropertyAccess\PropertyPathIterator::offsetGet Symfony\Component\PropertyAccess\PropertyPathIterator::offsetSet Symfony\Component\PropertyAccess\PropertyPathIterator::offsetUnset Symfony\Component\PropertyAccess\PropertyPathIterator::append Symfony\Component\PropertyAccess\PropertyPathIterator::getArrayCopy Symfony\Component\PropertyAccess\PropertyPathIterator::count Symfony\Component\PropertyAccess\PropertyPathIterator::getFlags Symfony\Component\PropertyAccess\PropertyPathIterator::setFlags Symfony\Component\PropertyAccess\PropertyPathIterator::asort Symfony\Component\PropertyAccess\PropertyPathIterator::ksort Symfony\Component\PropertyAccess\PropertyPathIterator::uasort Symfony\Component\PropertyAccess\PropertyPathIterator::uksort Symfony\Component\PropertyAccess\PropertyPathIterator::natsort Symfony\Component\PropertyAccess\PropertyPathIterator::natcasesort Symfony\Component\PropertyAccess\PropertyPathIterator::unserialize Symfony\Component\PropertyAccess\PropertyPathIterator::serialize Symfony\Component\PropertyAccess\PropertyPathIterator::rewind Symfony\Component\PropertyAccess\PropertyPathIterator::current Symfony\Component\PropertyAccess\PropertyPathIterator::key Symfony\Component\PropertyAccess\PropertyPathIterator::next Symfony\Component\PropertyAccess\PropertyPathIterator::valid Symfony\Component\PropertyAccess\PropertyPathIterator::seek Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::seek Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::current Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::next Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::key Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::valid Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::rewind Symfony\Component\RateLimiter\Exception\InvalidIntervalException::getCode Symfony\Component\RateLimiter\Exception\MaxWaitDurationExceededException::getCode Symfony\Component\RateLimiter\Exception\RateLimitExceededException::getCode Symfony\Component\RateLimiter\Exception\ReserveNotSupportedException::getCode Symfony\Component\RateLimiter\Policy\Window::add Symfony\Component\Routing\CompiledRoute::unserialize Symfony\Component\Routing\Exception\ExceptionInterface::getCode Symfony\Component\Routing\Exception\InvalidArgumentException::getCode Symfony\Component\Routing\Exception\InvalidParameterException::getCode Symfony\Component\Routing\Exception\MethodNotAllowedException::getCode Symfony\Component\Routing\Exception\MissingMandatoryParametersException::getCode Symfony\Component\Routing\Exception\NoConfigurationException::getCode Symfony\Component\Routing\Exception\ResourceNotFoundException::getCode Symfony\Component\Routing\Exception\RouteCircularReferenceException::getCode Symfony\Component\Routing\Exception\RouteNotFoundException::getCode Symfony\Component\Routing\Exception\RuntimeException::getCode Symfony\Component\Routing\Generator\ConfigurableRequirementsInterface::setStrictRequirements Symfony\Component\Routing\Generator\UrlGeneratorInterface::setContext Symfony\Component\Routing\Loader\AnnotationClassLoader::configureRoute Symfony\Component\Routing\Loader\AnnotationDirectoryLoader::setCurrentDir Symfony\Component\Routing\Loader\AnnotationFileLoader::setCurrentDir Symfony\Component\Routing\Loader\DirectoryLoader::setCurrentDir Symfony\Component\Routing\Loader\GlobFileLoader::setCurrentDir Symfony\Component\Routing\Loader\PhpFileLoader::setCurrentDir Symfony\Component\Routing\Loader\XmlFileLoader::setCurrentDir Symfony\Component\Routing\Loader\YamlFileLoader::setCurrentDir Symfony\Component\Routing\Matcher\CompiledUrlMatcher::getExpressionLanguage Symfony\Component\Routing\Matcher\RedirectableUrlMatcher::getExpressionLanguage Symfony\Component\Routing\Matcher\TraceableUrlMatcher::getExpressionLanguage Symfony\Component\Routing\Matcher\UrlMatcher::getExpressionLanguage Symfony\Component\Routing\Matcher\UrlMatcherInterface::setContext Symfony\Component\Routing\RequestContextAwareInterface::setContext Symfony\Component\Routing\Route::unserialize Symfony\Component\Routing\RouterInterface::setContext Symfony\Component\Security\Core\Authentication\RememberMe\TokenProviderInterface::deleteTokenBySeries Symfony\Component\Security\Core\Authentication\RememberMe\TokenProviderInterface::updateToken Symfony\Component\Security\Core\Authentication\RememberMe\TokenProviderInterface::createNewToken Symfony\Component\Security\Core\Authentication\Token\AbstractToken::unserialize Symfony\Component\Security\Core\Authentication\Token\NullToken::setUser Symfony\Component\Security\Core\Authentication\Token\NullToken::setAttributes Symfony\Component\Security\Core\Authentication\Token\NullToken::setAttribute Symfony\Component\Security\Core\Authentication\Token\PreAuthenticatedToken::unserialize Symfony\Component\Security\Core\Authentication\Token\RememberMeToken::unserialize Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface::setToken Symfony\Component\Security\Core\Authentication\Token\SwitchUserToken::unserialize Symfony\Component\Security\Core\Authentication\Token\TokenInterface::setUser Symfony\Component\Security\Core\Authentication\Token\TokenInterface::eraseCredentials Symfony\Component\Security\Core\Authentication\Token\TokenInterface::setAttributes Symfony\Component\Security\Core\Authentication\Token\TokenInterface::setAttribute Symfony\Component\Security\Core\Authentication\Token\UsernamePasswordToken::unserialize Symfony\Component\Security\Core\Exception\AccessDeniedException::getCode Symfony\Component\Security\Core\Exception\AccountExpiredException::getCode Symfony\Component\Security\Core\Exception\AccountStatusException::getCode Symfony\Component\Security\Core\Exception\AuthenticationCredentialsNotFoundException::getCode Symfony\Component\Security\Core\Exception\AuthenticationException::getCode Symfony\Component\Security\Core\Exception\AuthenticationExpiredException::getCode Symfony\Component\Security\Core\Exception\AuthenticationServiceException::getCode Symfony\Component\Security\Core\Exception\BadCredentialsException::getCode Symfony\Component\Security\Core\Exception\CookieTheftException::getCode Symfony\Component\Security\Core\Exception\CredentialsExpiredException::getCode Symfony\Component\Security\Core\Exception\CustomUserMessageAccountStatusException::getCode Symfony\Component\Security\Core\Exception\CustomUserMessageAuthenticationException::getCode Symfony\Component\Security\Core\Exception\DisabledException::getCode Symfony\Component\Security\Core\Exception\ExceptionInterface::getCode Symfony\Component\Security\Core\Exception\InsufficientAuthenticationException::getCode Symfony\Component\Security\Core\Exception\InvalidArgumentException::getCode Symfony\Component\Security\Core\Exception\InvalidCsrfTokenException::getCode Symfony\Component\Security\Core\Exception\LazyResponseException::getCode Symfony\Component\Security\Core\Exception\LockedException::getCode Symfony\Component\Security\Core\Exception\LogicException::getCode Symfony\Component\Security\Core\Exception\LogoutException::getCode Symfony\Component\Security\Core\Exception\ProviderNotFoundException::getCode Symfony\Component\Security\Core\Exception\RuntimeException::getCode Symfony\Component\Security\Core\Exception\SessionUnavailableException::getCode Symfony\Component\Security\Core\Exception\TokenNotFoundException::getCode Symfony\Component\Security\Core\Exception\TooManyLoginAttemptsAuthenticationException::getCode Symfony\Component\Security\Core\Exception\UnsupportedUserException::getCode Symfony\Component\Security\Core\Exception\UserNotFoundException::getCode Symfony\Component\Security\Core\Signature\Exception\ExpiredSignatureException::getCode Symfony\Component\Security\Core\Signature\Exception\InvalidSignatureException::getCode Symfony\Component\Security\Core\Test\AccessDecisionStrategyTestCase::testDecide Symfony\Component\Security\Core\Test\AccessDecisionStrategyTestCase::getResult Symfony\Component\Security\Core\Test\AccessDecisionStrategyTestCase::runTest Symfony\Component\Security\Core\User\InMemoryUserProvider::createUser Symfony\Component\Security\Core\User\UserCheckerInterface::checkPreAuth Symfony\Component\Security\Core\User\UserCheckerInterface::checkPostAuth Symfony\Component\Security\Core\User\UserInterface::eraseCredentials Symfony\Component\Security\Csrf\Exception\TokenNotFoundException::getCode Symfony\Component\Security\Csrf\TokenStorage\ClearableTokenStorageInterface::clear Symfony\Component\Security\Csrf\TokenStorage\ClearableTokenStorageInterface::setToken Symfony\Component\Security\Csrf\TokenStorage\TokenStorageInterface::setToken Symfony\Component\Security\Http\Authenticator\JsonLoginAuthenticator::setTranslator Symfony\Component\Security\Http\Authenticator\Token\PostAuthenticationToken::unserialize Symfony\Component\Security\Http\EntryPoint\Exception\NotAnEntryPointException::getCode Symfony\Component\Security\Http\Firewall\AbstractListener::authenticate Symfony\Component\Security\Http\Firewall\AccessListener::authenticate Symfony\Component\Security\Http\Firewall\ContextListener::safelyUnserialize Symfony\Component\Security\Http\Firewall\ContextListener::handleUnserializeCallback Symfony\Component\Security\Http\Firewall\ExceptionListener::throwUnauthorizedException Symfony\Component\Security\Http\Firewall\FirewallListenerInterface::authenticate Symfony\Component\Security\Http\LoginLink\Exception\ExpiredLoginLinkException::getCode Symfony\Component\Security\Http\LoginLink\Exception\InvalidLoginLinkAuthenticationException::getCode Symfony\Component\Security\Http\LoginLink\Exception\InvalidLoginLinkException::getCode Symfony\Component\Security\Http\LoginLink\Exception\InvalidLoginLinkExceptionInterface::getCode Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface::onAuthentication Symfony\Component\Semaphore\Exception\ExceptionInterface::getCode Symfony\Component\Semaphore\Exception\InvalidArgumentException::getCode Symfony\Component\Semaphore\Exception\RuntimeException::getCode Symfony\Component\Semaphore\Exception\SemaphoreAcquiringException::getCode Symfony\Component\Semaphore\Exception\SemaphoreExpiredException::getCode Symfony\Component\Semaphore\Exception\SemaphoreReleasingException::getCode Symfony\Component\Semaphore\PersistingStoreInterface::save Symfony\Component\Semaphore\PersistingStoreInterface::delete Symfony\Component\Semaphore\PersistingStoreInterface::putOffExpiration Symfony\Component\Semaphore\SemaphoreInterface::refresh Symfony\Component\Semaphore\SemaphoreInterface::release Symfony\Component\Serializer\Exception\BadMethodCallException::getCode Symfony\Component\Serializer\Exception\CircularReferenceException::getCode Symfony\Component\Serializer\Exception\ExceptionInterface::getCode Symfony\Component\Serializer\Exception\ExtraAttributesException::getCode Symfony\Component\Serializer\Exception\InvalidArgumentException::getCode Symfony\Component\Serializer\Exception\LogicException::getCode Symfony\Component\Serializer\Exception\MappingException::getCode Symfony\Component\Serializer\Exception\MissingConstructorArgumentsException::getCode Symfony\Component\Serializer\Exception\NotEncodableValueException::getCode Symfony\Component\Serializer\Exception\NotNormalizableValueException::getCode Symfony\Component\Serializer\Exception\PartialDenormalizationException::getData Symfony\Component\Serializer\Exception\PartialDenormalizationException::getCode Symfony\Component\Serializer\Exception\RuntimeException::getCode Symfony\Component\Serializer\Exception\UnexpectedValueException::getCode Symfony\Component\Serializer\Exception\UnsupportedException::getCode Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::addGroup Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::setMaxDepth Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::setSerializedName Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::setIgnore Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::merge Symfony\Component\Serializer\Mapping\ClassMetadataInterface::addAttributeMetadata Symfony\Component\Serializer\Mapping\ClassMetadataInterface::merge Symfony\Component\Serializer\Mapping\ClassMetadataInterface::setClassDiscriminatorMapping Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer::setAttributeValue Symfony\Component\Serializer\Normalizer\DenormalizableInterface::denormalize Symfony\Component\Serializer\Normalizer\DenormalizerAwareInterface::setDenormalizer Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface::setNormalizer Symfony\Component\Serializer\SerializerAwareInterface::setSerializer Symfony\Component\String\Exception\ExceptionInterface::getCode Symfony\Component\String\Exception\InvalidArgumentException::getCode Symfony\Component\String\Exception\RuntimeException::getCode Symfony\Component\Templating\Helper\HelperInterface::setCharset Symfony\Component\Templating\StreamingEngineInterface::stream Symfony\Component\Translation\CatalogueMetadataAwareInterface::setCatalogueMetadata Symfony\Component\Translation\CatalogueMetadataAwareInterface::deleteCatalogueMetadata Symfony\Component\Translation\Catalogue\AbstractOperation::processDomain Symfony\Component\Translation\Command\XliffLintCommand::display Symfony\Component\Translation\Command\XliffLintCommand::displayJson Symfony\Component\Translation\Command\XliffLintCommand::getDirectoryIterator Symfony\Component\Translation\Command\XliffLintCommand::isReadable Symfony\Component\Translation\DataCollector\TranslationDataCollector::getLocale Symfony\Component\Translation\DataCollector\TranslationDataCollector::getFallbackLocales Symfony\Component\Translation\Dumper\DumperInterface::dump Symfony\Component\Translation\Exception\ExceptionInterface::getCode Symfony\Component\Translation\Exception\IncompleteDsnException::getCode Symfony\Component\Translation\Exception\InvalidArgumentException::getCode Symfony\Component\Translation\Exception\InvalidResourceException::getCode Symfony\Component\Translation\Exception\LogicException::getCode Symfony\Component\Translation\Exception\MissingRequiredOptionException::getCode Symfony\Component\Translation\Exception\NotFoundResourceException::getCode Symfony\Component\Translation\Exception\ProviderException::getCode Symfony\Component\Translation\Exception\ProviderExceptionInterface::getCode Symfony\Component\Translation\Exception\RuntimeException::getCode Symfony\Component\Translation\Exception\UnsupportedSchemeException::getCode Symfony\Component\Translation\Extractor\ExtractorInterface::extract Symfony\Component\Translation\Extractor\ExtractorInterface::setPrefix Symfony\Component\Translation\Extractor\PhpExtractor::extract Symfony\Component\Translation\Extractor\PhpExtractor::setPrefix Symfony\Component\Translation\Extractor\PhpExtractor::seekToNextRelevantToken Symfony\Component\Translation\Extractor\PhpExtractor::skipMethodArgument Symfony\Component\Translation\Extractor\PhpExtractor::parseTokens Symfony\Component\Translation\MessageCatalogueInterface::set Symfony\Component\Translation\MessageCatalogueInterface::replace Symfony\Component\Translation\MessageCatalogueInterface::add Symfony\Component\Translation\MessageCatalogueInterface::addCatalogue Symfony\Component\Translation\MessageCatalogueInterface::addFallbackCatalogue Symfony\Component\Translation\MessageCatalogueInterface::addResource Symfony\Component\Translation\MetadataAwareInterface::setMetadata Symfony\Component\Translation\MetadataAwareInterface::deleteMetadata Symfony\Component\Translation\Provider\Dsn::getOption Symfony\Component\Translation\Provider\Dsn::getRequiredOption Symfony\Component\Translation\Reader\TranslationReaderInterface::read Symfony\Component\Translation\Test\ProviderFactoryTestCase::testSupports Symfony\Component\Translation\Test\ProviderFactoryTestCase::testCreate Symfony\Component\Translation\Test\ProviderFactoryTestCase::testUnsupportedSchemeException Symfony\Component\Translation\Test\ProviderFactoryTestCase::testIncompleteDsnException Symfony\Component\Translation\Test\ProviderFactoryTestCase::getResult Symfony\Component\Translation\Test\ProviderFactoryTestCase::runTest Symfony\Component\Translation\Test\ProviderTestCase::testToString Symfony\Component\Translation\Test\ProviderTestCase::getResult Symfony\Component\Translation\Test\ProviderTestCase::runTest Symfony\Component\Translation\Util\ArrayConverter::getElementByPath Symfony\Component\Translation\Writer\TranslationWriterInterface::write Symfony\Component\Validator\ConstraintValidator::validate Symfony\Component\Validator\ConstraintValidatorInterface::initialize Symfony\Component\Validator\ConstraintValidatorInterface::validate Symfony\Component\Validator\ConstraintViolationListInterface::add Symfony\Component\Validator\ConstraintViolationListInterface::addAll Symfony\Component\Validator\ConstraintViolationListInterface::set Symfony\Component\Validator\ConstraintViolationListInterface::remove Symfony\Component\Validator\ConstraintViolationListInterface::count Symfony\Component\Validator\ConstraintViolationListInterface::offsetExists Symfony\Component\Validator\ConstraintViolationListInterface::offsetGet Symfony\Component\Validator\ConstraintViolationListInterface::offsetSet Symfony\Component\Validator\ConstraintViolationListInterface::offsetUnset Symfony\Component\Validator\Constraints\IsbnValidator::getMessage Symfony\Component\Validator\Context\ExecutionContextInterface::addViolation Symfony\Component\Validator\Context\ExecutionContextInterface::setNode Symfony\Component\Validator\Context\ExecutionContextInterface::setGroup Symfony\Component\Validator\Context\ExecutionContextInterface::setConstraint Symfony\Component\Validator\Context\ExecutionContextInterface::markGroupAsValidated Symfony\Component\Validator\Context\ExecutionContextInterface::markConstraintAsValidated Symfony\Component\Validator\Context\ExecutionContextInterface::markObjectAsInitialized Symfony\Component\Validator\Exception\BadMethodCallException::getCode Symfony\Component\Validator\Exception\ConstraintDefinitionException::getCode Symfony\Component\Validator\Exception\ExceptionInterface::getCode Symfony\Component\Validator\Exception\GroupDefinitionException::getCode Symfony\Component\Validator\Exception\InvalidArgumentException::getCode Symfony\Component\Validator\Exception\InvalidOptionsException::getCode Symfony\Component\Validator\Exception\LogicException::getCode Symfony\Component\Validator\Exception\MappingException::getCode Symfony\Component\Validator\Exception\MissingOptionsException::getCode Symfony\Component\Validator\Exception\NoSuchMetadataException::getCode Symfony\Component\Validator\Exception\OutOfBoundsException::getCode Symfony\Component\Validator\Exception\RuntimeException::getCode Symfony\Component\Validator\Exception\UnexpectedTypeException::getCode Symfony\Component\Validator\Exception\UnexpectedValueException::getCode Symfony\Component\Validator\Exception\UnsupportedMetadataException::getCode Symfony\Component\Validator\Exception\ValidationFailedException::getValue Symfony\Component\Validator\Exception\ValidationFailedException::getCode Symfony\Component\Validator\Exception\ValidatorException::getCode Symfony\Component\Validator\ObjectInitializerInterface::initialize Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setDefaultTimezone Symfony\Component\Validator\Test\ConstraintValidatorTestCase::restoreDefaultTimezone Symfony\Component\Validator\Test\ConstraintValidatorTestCase::createContext Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setGroup Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setObject Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setProperty Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setValue Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setRoot Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setPropertyPath Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectNoValidate Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectValidateAt Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectValidateValue Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectFailingValueValidation Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectValidateValueAt Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectViolationsAt Symfony\Component\Validator\Test\ConstraintValidatorTestCase::assertNoViolation Symfony\Component\Validator\Test\ConstraintValidatorTestCase::getResult Symfony\Component\Validator\Test\ConstraintValidatorTestCase::runTest Symfony\Component\Validator\Violation\ConstraintViolationBuilderInterface::addViolation Symfony\Component\VarDumper\Caster\ClassStub::wrapCallable Symfony\Component\VarDumper\Caster\LinkStub::getComposerRoot Symfony\Component\VarDumper\Caster\StubCaster::castCutArray Symfony\Component\VarDumper\Cloner\Data::getStub Symfony\Component\VarDumper\Cloner\DumperInterface::dumpScalar Symfony\Component\VarDumper\Cloner\DumperInterface::dumpString Symfony\Component\VarDumper\Cloner\DumperInterface::enterHash Symfony\Component\VarDumper\Cloner\DumperInterface::leaveHash Symfony\Component\VarDumper\Dumper\AbstractDumper::dumpScalar Symfony\Component\VarDumper\Dumper\AbstractDumper::dumpString Symfony\Component\VarDumper\Dumper\AbstractDumper::enterHash Symfony\Component\VarDumper\Dumper\AbstractDumper::leaveHash Symfony\Component\VarDumper\Dumper\CliDumper::getSourceLink Symfony\Component\VarDumper\Dumper\DataDumperInterface::dump Symfony\Component\VarDumper\Dumper\HtmlDumper::setTheme Symfony\Component\VarDumper\Dumper\HtmlDumper::setDumpHeader Symfony\Component\VarDumper\Dumper\HtmlDumper::setDumpBoundaries Symfony\Component\VarDumper\Dumper\HtmlDumper::getDumpHeader Symfony\Component\VarDumper\Dumper\HtmlDumper::getSourceLink Symfony\Component\VarDumper\Exception\ThrowingCasterException::getCode Symfony\Component\VarDumper\Server\Connection::nullErrorHandler Symfony\Component\VarDumper\Server\Connection::createSocket Symfony\Component\VarDumper\Test\VarDumperTestTrait::assertDumpEquals Symfony\Component\VarDumper\Test\VarDumperTestTrait::assertDumpMatchesFormat Symfony\Component\VarDumper\VarDumper::dump Symfony\Component\VarExporter\Exception\ClassNotFoundException::getCode Symfony\Component\VarExporter\Exception\ExceptionInterface::getCode Symfony\Component\VarExporter\Exception\LogicException::getCode Symfony\Component\VarExporter\Exception\NotInstantiableTypeException::getCode Symfony\Component\VarExporter\Internal\Exporter::export Symfony\Component\VarExporter\Internal\Hydrator::hydrate Symfony\Component\VarExporter\Internal\Hydrator::getHydrator Symfony\Component\VarExporter\Internal\Hydrator::getSimpleHydrator Symfony\Component\VarExporter\Internal\LazyObjectRegistry::getClassResetters Symfony\Component\VarExporter\Internal\LazyObjectRegistry::getClassAccessors Symfony\Component\VarExporter\Internal\LazyObjectRegistry::getParentMethods Symfony\Component\VarExporter\Internal\LazyObjectRegistry::getScope Symfony\Component\VarExporter\Internal\LazyObjectState::initialize Symfony\Component\VarExporter\Internal\Registry::unserialize Symfony\Component\VarExporter\Internal\Registry::p Symfony\Component\VarExporter\Internal\Registry::f Symfony\Component\VarExporter\Internal\Registry::getClassReflector Symfony\Component\Workflow\Event\AnnounceEvent::getMetadata Symfony\Component\Workflow\Event\CompletedEvent::getMetadata Symfony\Component\Workflow\Event\EnterEvent::getMetadata Symfony\Component\Workflow\Event\EnteredEvent::getMetadata Symfony\Component\Workflow\Event\Event::getMetadata Symfony\Component\Workflow\Event\GuardEvent::getMetadata Symfony\Component\Workflow\Event\LeaveEvent::getMetadata Symfony\Component\Workflow\Event\TransitionEvent::getMetadata Symfony\Component\Workflow\Exception\ExceptionInterface::getCode Symfony\Component\Workflow\Exception\InvalidArgumentException::getCode Symfony\Component\Workflow\Exception\InvalidDefinitionException::getCode Symfony\Component\Workflow\Exception\LogicException::getCode Symfony\Component\Workflow\Exception\NotEnabledTransitionException::getCode Symfony\Component\Workflow\Exception\RuntimeException::getCode Symfony\Component\Workflow\Exception\TransitionException::getCode Symfony\Component\Workflow\Exception\UndefinedTransitionException::getCode Symfony\Component\Workflow\MarkingStore\MarkingStoreInterface::setMarking Symfony\Component\Workflow\Metadata\GetMetadataTrait::getMetadata Symfony\Component\Workflow\Metadata\InMemoryMetadataStore::getMetadata Symfony\Component\Workflow\Metadata\MetadataStoreInterface::getMetadata Symfony\Component\Workflow\Validator\DefinitionValidatorInterface::validate Symfony\Component\Yaml\Exception\DumpException::getCode Symfony\Component\Yaml\Exception\ExceptionInterface::getCode Symfony\Component\Yaml\Exception\ParseException::getCode Symfony\Component\Yaml\Exception\RuntimeException::getCode Symfony\Component\Yaml\Parser::doParse Symfony\Component\Yaml\Parser::parseBlock Symfony\Component\Yaml\Tag\TaggedValue::getValue Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\DecodingExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\ExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\HttpExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\TimeoutExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface::getCode Symfony\Contracts\HttpClient\ResponseStreamInterface::next Symfony\Contracts\HttpClient\ResponseStreamInterface::valid Symfony\Contracts\HttpClient\ResponseStreamInterface::rewind Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testGetRequest Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testHeadRequest Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testNonBufferedGetRequest Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testBufferSink Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testConditionalBuffering Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testReentrantBufferCallback Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testThrowingBufferCallback Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testUnsupportedOption Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testHttpVersion Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testChunkedEncoding Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testClientError Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testIgnoreErrors Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testDnsError Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testInlineAuth Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testBadRequestBody Symfony\Contracts\HttpClient\Test\HttpClientTestCase::test304 Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testRedirects Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testInvalidRedirect Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testRelativeRedirects Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testRedirect307 Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testMaxRedirects Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testStream Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testAddToStream Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testCompleteTypeError Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testOnProgress Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testPostJson Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testPostArray Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testPostResource Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testPostCallback Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testCancel Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testInfoOnCanceledResponse Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testCancelInStream Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testOnProgressCancel Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testOnProgressError Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testResolve Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testIdnResolve Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testNotATimeout Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testTimeoutOnAccess Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testTimeoutIsNotAFatalError Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testTimeoutOnStream Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testUncheckedTimeoutThrows Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testTimeoutWithActiveConcurrentStream Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testTimeoutOnInitialize Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testTimeoutOnDestruct Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testDestruct Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testGetContentAfterDestruct Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testGetEncodedContentAfterDestruct Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testProxy Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testNoProxy Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testAutoEncodingRequest Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testBaseUri Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testQuery Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testInformationalResponse Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testInformationalResponseStream Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testUserlandEncodingRequest Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testGzipBroken Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testMaxDuration Symfony\Contracts\HttpClient\Test\HttpClientTestCase::testWithOptions Symfony\Contracts\HttpClient\Test\HttpClientTestCase::getResult Symfony\Contracts\HttpClient\Test\HttpClientTestCase::runTest Symfony\Contracts\Service\Test\ServiceLocatorTest::testHas Symfony\Contracts\Service\Test\ServiceLocatorTest::testGet Symfony\Contracts\Service\Test\ServiceLocatorTest::testGetDoesNotMemoize Symfony\Contracts\Service\Test\ServiceLocatorTest::testThrowsOnUndefinedInternalService Symfony\Contracts\Service\Test\ServiceLocatorTest::testThrowsOnCircularReference Symfony\Contracts\Service\Test\ServiceLocatorTest::getResult Symfony\Contracts\Service\Test\ServiceLocatorTest::runTest Symfony\Contracts\Translation\LocaleAwareInterface::setLocale Symfony\Contracts\Translation\Test\TranslatorTest::testTrans Symfony\Contracts\Translation\Test\TranslatorTest::testTransChoiceWithExplicitLocale Symfony\Contracts\Translation\Test\TranslatorTest::testTransChoiceWithDefaultLocale Symfony\Contracts\Translation\Test\TranslatorTest::testTransChoiceWithEnUsPosix Symfony\Contracts\Translation\Test\TranslatorTest::testGetSetLocale Symfony\Contracts\Translation\Test\TranslatorTest::testGetLocaleReturnsDefaultLocaleIfNotSet Symfony\Contracts\Translation\Test\TranslatorTest::getTransTests Symfony\Contracts\Translation\Test\TranslatorTest::getTransChoiceTests Symfony\Contracts\Translation\Test\TranslatorTest::testInterval Symfony\Contracts\Translation\Test\TranslatorTest::getInterval Symfony\Contracts\Translation\Test\TranslatorTest::testChoose Symfony\Contracts\Translation\Test\TranslatorTest::testReturnMessageIfExactlyOneStandardRuleIsGiven Symfony\Contracts\Translation\Test\TranslatorTest::testThrowExceptionIfMatchingMessageCannotBeFound Symfony\Contracts\Translation\Test\TranslatorTest::getNonMatchingMessages Symfony\Contracts\Translation\Test\TranslatorTest::getChooseTests Symfony\Contracts\Translation\Test\TranslatorTest::testFailedLangcodes Symfony\Contracts\Translation\Test\TranslatorTest::testLangcodes Symfony\Contracts\Translation\Test\TranslatorTest::validateMatrix Symfony\Contracts\Translation\Test\TranslatorTest::generateTestData Symfony\Contracts\Translation\Test\TranslatorTest::getResult Symfony\Contracts\Translation\Test\TranslatorTest::runTest ```
derrabus commented 1 year ago

there are still 1618 methods left

I think we should wait for the : void PR to be merged before anyone starts to pick methods from that list. πŸ˜“

wouterj commented 1 year ago

I think we should wait for the : void PR to be merged before anyone starts to pick methods from that list. sweat

Agreed (I created this list from the void PR branch, so it should be more or less correct).

nicolas-grekas commented 1 year ago

In #49347, I manually added @return void to a few interfaces (DataCollectorInterface, LateDataCollectorInterface and ResetInterface).

I think it would be great to have a PR dedicated to ensuring that all interfaces have explicit return types for all their methods.

nicolas-grekas commented 1 year ago

Note that ResetInterface::reset() is an interesting case because we cannot document its return type as mixed|void.

derrabus commented 1 year ago

Note that ResetInterface::reset() is an interesting case because we cannot document its return type as mixed|void.

Why should an implementation of this method return anything anyway?

nicolas-grekas commented 1 year ago

Some do in the codebase :shrug:

derrabus commented 1 year ago

Maybe they should stop doing that. 😬

wouterj commented 1 year ago

Alright, current statistics of missing return types:

360 interface methods, implemented by 905 class methods ``` Symfony\Bundle\FrameworkBundle\DataCollector\TemplateAwareDataCollectorInterface::reset Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\AuthenticatorFactoryInterface::addConfiguration Symfony\Bundle\SecurityBundle\DependencyInjection\Security\Factory\StatelessAuthenticatorFactoryInterface::addConfiguration Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface::create Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface::getKey Symfony\Bundle\SecurityBundle\DependencyInjection\Security\UserProvider\UserProviderFactoryInterface::addConfiguration Symfony\Component\Asset\Exception\ExceptionInterface::getCode Symfony\Component\Cache\ResettableInterface::reset Symfony\Component\Config\ConfigCacheInterface::write Symfony\Component\Config\Definition\Builder\BuilderAwareInterface::setBuilder Symfony\Component\Config\Definition\Builder\ParentNodeDefinitionInterface::setBuilder Symfony\Component\Config\Definition\PrototypeNodeInterface::setName Symfony\Component\Config\Loader\LoaderInterface::setResolver Symfony\Component\Console\Descriptor\DescriptorInterface::describe Symfony\Component\Console\Exception\ExceptionInterface::getCode Symfony\Component\Console\Formatter\OutputFormatterInterface::setDecorated Symfony\Component\Console\Formatter\OutputFormatterInterface::setStyle Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::setForeground Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::setBackground Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::setOption Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::unsetOption Symfony\Component\Console\Formatter\OutputFormatterStyleInterface::setOptions Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface::setDecorated Symfony\Component\Console\Formatter\WrappableOutputFormatterInterface::setStyle Symfony\Component\Console\Helper\HelperInterface::setHelperSet Symfony\Component\Console\Input\InputAwareInterface::setInput Symfony\Component\Console\Input\InputInterface::bind Symfony\Component\Console\Input\InputInterface::validate Symfony\Component\Console\Input\InputInterface::setArgument Symfony\Component\Console\Input\InputInterface::setOption Symfony\Component\Console\Input\InputInterface::setInteractive Symfony\Component\Console\Input\StreamableInputInterface::setStream Symfony\Component\Console\Input\StreamableInputInterface::bind Symfony\Component\Console\Input\StreamableInputInterface::validate Symfony\Component\Console\Input\StreamableInputInterface::setArgument Symfony\Component\Console\Input\StreamableInputInterface::setOption Symfony\Component\Console\Input\StreamableInputInterface::setInteractive Symfony\Component\Console\Output\ConsoleOutputInterface::setErrorOutput Symfony\Component\Console\Output\ConsoleOutputInterface::write Symfony\Component\Console\Output\ConsoleOutputInterface::writeln Symfony\Component\Console\Output\ConsoleOutputInterface::setVerbosity Symfony\Component\Console\Output\ConsoleOutputInterface::setDecorated Symfony\Component\Console\Output\ConsoleOutputInterface::setFormatter Symfony\Component\Console\Output\OutputInterface::write Symfony\Component\Console\Output\OutputInterface::writeln Symfony\Component\Console\Output\OutputInterface::setVerbosity Symfony\Component\Console\Output\OutputInterface::setDecorated Symfony\Component\Console\Output\OutputInterface::setFormatter Symfony\Component\Console\Style\StyleInterface::title Symfony\Component\Console\Style\StyleInterface::section Symfony\Component\Console\Style\StyleInterface::listing Symfony\Component\Console\Style\StyleInterface::text Symfony\Component\Console\Style\StyleInterface::success Symfony\Component\Console\Style\StyleInterface::error Symfony\Component\Console\Style\StyleInterface::warning Symfony\Component\Console\Style\StyleInterface::note Symfony\Component\Console\Style\StyleInterface::caution Symfony\Component\Console\Style\StyleInterface::table Symfony\Component\Console\Style\StyleInterface::newLine Symfony\Component\Console\Style\StyleInterface::progressStart Symfony\Component\Console\Style\StyleInterface::progressAdvance Symfony\Component\Console\Style\StyleInterface::progressFinish Symfony\Component\CssSelector\Exception\ExceptionInterface::getCode Symfony\Component\DependencyInjection\Argument\ArgumentInterface::setValues Symfony\Component\DependencyInjection\Compiler\CompilerPassInterface::process Symfony\Component\DependencyInjection\ContainerAwareInterface::setContainer Symfony\Component\DependencyInjection\ContainerInterface::set Symfony\Component\DependencyInjection\ContainerInterface::setParameter Symfony\Component\DependencyInjection\Exception\ExceptionInterface::getCode Symfony\Component\DependencyInjection\Extension\ExtensionInterface::load Symfony\Component\DependencyInjection\Extension\PrependExtensionInterface::prepend Symfony\Component\DependencyInjection\ParameterBag\ContainerBagInterface::resolveValue Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::clear Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::add Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::remove Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::set Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::resolve Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface::resolveValue Symfony\Component\DependencyInjection\TaggedContainerInterface::set Symfony\Component\DependencyInjection\TaggedContainerInterface::setParameter Symfony\Component\Dotenv\Exception\ExceptionInterface::getCode Symfony\Component\EventDispatcher\EventDispatcherInterface::addListener Symfony\Component\EventDispatcher\EventDispatcherInterface::addSubscriber Symfony\Component\EventDispatcher\EventDispatcherInterface::removeListener Symfony\Component\EventDispatcher\EventDispatcherInterface::removeSubscriber Symfony\Component\Filesystem\Exception\ExceptionInterface::getCode Symfony\Component\Filesystem\Exception\IOExceptionInterface::getCode Symfony\Component\Form\ButtonTypeInterface::buildForm Symfony\Component\Form\ButtonTypeInterface::buildView Symfony\Component\Form\ButtonTypeInterface::finishView Symfony\Component\Form\ButtonTypeInterface::configureOptions Symfony\Component\Form\DataMapperInterface::mapDataToForms Symfony\Component\Form\DataMapperInterface::mapFormsToData Symfony\Component\Form\Exception\ExceptionInterface::getCode Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::collectConfiguration Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::collectDefaultData Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::collectSubmittedData Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::collectViewVariables Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::associateFormWithView Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::buildPreliminaryFormTree Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::buildFinalFormTree Symfony\Component\Form\Extension\DataCollector\FormDataCollectorInterface::reset Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationMapperInterface::mapViolation Symfony\Component\Form\FormBuilderInterface::count Symfony\Component\Form\FormInterface::offsetExists Symfony\Component\Form\FormInterface::offsetGet Symfony\Component\Form\FormInterface::offsetSet Symfony\Component\Form\FormInterface::offsetUnset Symfony\Component\Form\FormInterface::count Symfony\Component\Form\FormRendererEngineInterface::setTheme Symfony\Component\Form\FormRendererInterface::setTheme Symfony\Component\Form\FormTypeExtensionInterface::buildForm Symfony\Component\Form\FormTypeExtensionInterface::buildView Symfony\Component\Form\FormTypeExtensionInterface::finishView Symfony\Component\Form\FormTypeExtensionInterface::configureOptions Symfony\Component\Form\FormTypeInterface::buildForm Symfony\Component\Form\FormTypeInterface::buildView Symfony\Component\Form\FormTypeInterface::finishView Symfony\Component\Form\FormTypeInterface::configureOptions Symfony\Component\Form\RequestHandlerInterface::handleRequest Symfony\Component\Form\ResolvedFormTypeInterface::buildForm Symfony\Component\Form\ResolvedFormTypeInterface::buildView Symfony\Component\Form\ResolvedFormTypeInterface::finishView Symfony\Component\Form\SubmitButtonTypeInterface::buildForm Symfony\Component\Form\SubmitButtonTypeInterface::buildView Symfony\Component\Form\SubmitButtonTypeInterface::finishView Symfony\Component\Form\SubmitButtonTypeInterface::configureOptions Symfony\Component\Form\Test\FormBuilderInterface::current Symfony\Component\Form\Test\FormBuilderInterface::next Symfony\Component\Form\Test\FormBuilderInterface::key Symfony\Component\Form\Test\FormBuilderInterface::valid Symfony\Component\Form\Test\FormBuilderInterface::rewind Symfony\Component\Form\Test\FormBuilderInterface::count Symfony\Component\Form\Test\FormInterface::current Symfony\Component\Form\Test\FormInterface::next Symfony\Component\Form\Test\FormInterface::key Symfony\Component\Form\Test\FormInterface::valid Symfony\Component\Form\Test\FormInterface::rewind Symfony\Component\Form\Test\FormInterface::offsetExists Symfony\Component\Form\Test\FormInterface::offsetGet Symfony\Component\Form\Test\FormInterface::offsetSet Symfony\Component\Form\Test\FormInterface::offsetUnset Symfony\Component\Form\Test\FormInterface::count Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface::set Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface::replace Symfony\Component\HttpFoundation\Session\Attribute\AttributeBagInterface::initialize Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::setId Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::setName Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::save Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::set Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::replace Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::clear Symfony\Component\HttpFoundation\Session\FlashBagAwareSessionInterface::registerBag Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface::add Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface::set Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface::setAll Symfony\Component\HttpFoundation\Session\Flash\FlashBagInterface::initialize Symfony\Component\HttpFoundation\Session\SessionBagInterface::initialize Symfony\Component\HttpFoundation\Session\SessionInterface::setId Symfony\Component\HttpFoundation\Session\SessionInterface::setName Symfony\Component\HttpFoundation\Session\SessionInterface::save Symfony\Component\HttpFoundation\Session\SessionInterface::set Symfony\Component\HttpFoundation\Session\SessionInterface::replace Symfony\Component\HttpFoundation\Session\SessionInterface::clear Symfony\Component\HttpFoundation\Session\SessionInterface::registerBag Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::setId Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::setName Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::save Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::clear Symfony\Component\HttpFoundation\Session\Storage\SessionStorageInterface::registerBag Symfony\Component\HttpKernel\Bundle\BundleInterface::boot Symfony\Component\HttpKernel\Bundle\BundleInterface::shutdown Symfony\Component\HttpKernel\Bundle\BundleInterface::build Symfony\Component\HttpKernel\Bundle\BundleInterface::setContainer Symfony\Component\HttpKernel\CacheClearer\CacheClearerInterface::clear Symfony\Component\HttpKernel\DataCollector\DataCollectorInterface::reset Symfony\Component\HttpKernel\Exception\HttpExceptionInterface::getCode Symfony\Component\HttpKernel\HttpCache\ResponseCacheStrategyInterface::add Symfony\Component\HttpKernel\HttpCache\ResponseCacheStrategyInterface::update Symfony\Component\HttpKernel\HttpCache\StoreInterface::invalidate Symfony\Component\HttpKernel\HttpCache\StoreInterface::cleanup Symfony\Component\HttpKernel\HttpCache\SurrogateInterface::addSurrogateCapability Symfony\Component\HttpKernel\HttpCache\SurrogateInterface::addSurrogateControl Symfony\Component\HttpKernel\KernelInterface::registerContainerConfiguration Symfony\Component\HttpKernel\KernelInterface::boot Symfony\Component\HttpKernel\KernelInterface::shutdown Symfony\Component\HttpKernel\Log\DebugLoggerInterface::clear Symfony\Component\HttpKernel\Profiler\ProfilerStorageInterface::purge Symfony\Component\HttpKernel\RebootableInterface::reboot Symfony\Component\HttpKernel\TerminableInterface::terminate Symfony\Component\Intl\Data\Bundle\Compiler\BundleCompilerInterface::compile Symfony\Component\Intl\Data\Bundle\Writer\BundleWriterInterface::write Symfony\Component\Intl\Exception\ExceptionInterface::getCode Symfony\Component\Ldap\Adapter\CollectionInterface::count Symfony\Component\Ldap\Adapter\CollectionInterface::getIterator Symfony\Component\Ldap\Adapter\CollectionInterface::offsetExists Symfony\Component\Ldap\Adapter\CollectionInterface::offsetGet Symfony\Component\Ldap\Adapter\CollectionInterface::offsetSet Symfony\Component\Ldap\Adapter\CollectionInterface::offsetUnset Symfony\Component\Ldap\Adapter\ConnectionInterface::bind Symfony\Component\Ldap\Exception\ExceptionInterface::getCode Symfony\Component\Ldap\LdapInterface::bind Symfony\Component\Lock\BlockingSharedLockStoreInterface::waitAndSaveRead Symfony\Component\Lock\BlockingSharedLockStoreInterface::saveRead Symfony\Component\Lock\BlockingSharedLockStoreInterface::save Symfony\Component\Lock\BlockingSharedLockStoreInterface::delete Symfony\Component\Lock\BlockingSharedLockStoreInterface::putOffExpiration Symfony\Component\Lock\BlockingStoreInterface::waitAndSave Symfony\Component\Lock\BlockingStoreInterface::save Symfony\Component\Lock\BlockingStoreInterface::delete Symfony\Component\Lock\BlockingStoreInterface::putOffExpiration Symfony\Component\Lock\Exception\ExceptionInterface::getCode Symfony\Component\Lock\LockInterface::refresh Symfony\Component\Lock\LockInterface::release Symfony\Component\Lock\PersistingStoreInterface::save Symfony\Component\Lock\PersistingStoreInterface::delete Symfony\Component\Lock\PersistingStoreInterface::putOffExpiration Symfony\Component\Lock\SharedLockInterface::refresh Symfony\Component\Lock\SharedLockInterface::release Symfony\Component\Lock\SharedLockStoreInterface::saveRead Symfony\Component\Lock\SharedLockStoreInterface::save Symfony\Component\Lock\SharedLockStoreInterface::delete Symfony\Component\Lock\SharedLockStoreInterface::putOffExpiration Symfony\Component\Mailer\Exception\ExceptionInterface::getCode Symfony\Component\Mailer\Exception\TransportExceptionInterface::getCode Symfony\Component\Messenger\Exception\ExceptionInterface::getCode Symfony\Component\Messenger\Exception\RecoverableExceptionInterface::getCode Symfony\Component\Messenger\Exception\StopWorkerExceptionInterface::getCode Symfony\Component\Messenger\Exception\UnrecoverableExceptionInterface::getCode Symfony\Component\Mime\Exception\ExceptionInterface::getCode Symfony\Component\Mime\Header\HeaderInterface::setBody Symfony\Component\Mime\Header\HeaderInterface::setCharset Symfony\Component\Mime\Header\HeaderInterface::setLanguage Symfony\Component\Mime\Header\HeaderInterface::setMaxLineLength Symfony\Component\Notifier\Exception\ExceptionInterface::getCode Symfony\Component\Notifier\Exception\TransportExceptionInterface::getCode Symfony\Component\OptionsResolver\Exception\ExceptionInterface::getCode Symfony\Component\OptionsResolver\Options::offsetExists Symfony\Component\OptionsResolver\Options::offsetGet Symfony\Component\OptionsResolver\Options::offsetSet Symfony\Component\OptionsResolver\Options::offsetUnset Symfony\Component\OptionsResolver\Options::count Symfony\Component\PasswordHasher\Exception\ExceptionInterface::getCode Symfony\Component\Process\Exception\ExceptionInterface::getCode Symfony\Component\PropertyAccess\Exception\ExceptionInterface::getCode Symfony\Component\PropertyAccess\PropertyAccessorInterface::setValue Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::seek Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::current Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::next Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::key Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::valid Symfony\Component\PropertyAccess\PropertyPathIteratorInterface::rewind Symfony\Component\Routing\Exception\ExceptionInterface::getCode Symfony\Component\Routing\Generator\ConfigurableRequirementsInterface::setStrictRequirements Symfony\Component\Routing\Generator\UrlGeneratorInterface::setContext Symfony\Component\Routing\Matcher\UrlMatcherInterface::setContext Symfony\Component\Routing\RequestContextAwareInterface::setContext Symfony\Component\Routing\RouterInterface::setContext Symfony\Component\Security\Core\Authentication\RememberMe\TokenProviderInterface::deleteTokenBySeries Symfony\Component\Security\Core\Authentication\RememberMe\TokenProviderInterface::updateToken Symfony\Component\Security\Core\Authentication\RememberMe\TokenProviderInterface::createNewToken Symfony\Component\Security\Core\Authentication\Token\Storage\TokenStorageInterface::setToken Symfony\Component\Security\Core\Authentication\Token\TokenInterface::setUser Symfony\Component\Security\Core\Authentication\Token\TokenInterface::eraseCredentials Symfony\Component\Security\Core\Authentication\Token\TokenInterface::setAttributes Symfony\Component\Security\Core\Authentication\Token\TokenInterface::setAttribute Symfony\Component\Security\Core\Exception\ExceptionInterface::getCode Symfony\Component\Security\Core\User\UserCheckerInterface::checkPreAuth Symfony\Component\Security\Core\User\UserCheckerInterface::checkPostAuth Symfony\Component\Security\Core\User\UserInterface::eraseCredentials Symfony\Component\Security\Csrf\TokenStorage\ClearableTokenStorageInterface::clear Symfony\Component\Security\Csrf\TokenStorage\ClearableTokenStorageInterface::setToken Symfony\Component\Security\Csrf\TokenStorage\TokenStorageInterface::setToken Symfony\Component\Security\Http\Firewall\FirewallListenerInterface::authenticate Symfony\Component\Security\Http\LoginLink\Exception\InvalidLoginLinkExceptionInterface::getCode Symfony\Component\Security\Http\Session\SessionAuthenticationStrategyInterface::onAuthentication Symfony\Component\Semaphore\Exception\ExceptionInterface::getCode Symfony\Component\Semaphore\PersistingStoreInterface::save Symfony\Component\Semaphore\PersistingStoreInterface::delete Symfony\Component\Semaphore\PersistingStoreInterface::putOffExpiration Symfony\Component\Semaphore\SemaphoreInterface::refresh Symfony\Component\Semaphore\SemaphoreInterface::release Symfony\Component\Serializer\Exception\ExceptionInterface::getCode Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::addGroup Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::setMaxDepth Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::setSerializedName Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::setIgnore Symfony\Component\Serializer\Mapping\AttributeMetadataInterface::merge Symfony\Component\Serializer\Mapping\ClassMetadataInterface::addAttributeMetadata Symfony\Component\Serializer\Mapping\ClassMetadataInterface::merge Symfony\Component\Serializer\Mapping\ClassMetadataInterface::setClassDiscriminatorMapping Symfony\Component\Serializer\Normalizer\DenormalizableInterface::denormalize Symfony\Component\Serializer\Normalizer\DenormalizerAwareInterface::setDenormalizer Symfony\Component\Serializer\Normalizer\NormalizerAwareInterface::setNormalizer Symfony\Component\Serializer\SerializerAwareInterface::setSerializer Symfony\Component\String\Exception\ExceptionInterface::getCode Symfony\Component\Templating\Helper\HelperInterface::setCharset Symfony\Component\Templating\StreamingEngineInterface::stream Symfony\Component\Translation\CatalogueMetadataAwareInterface::setCatalogueMetadata Symfony\Component\Translation\CatalogueMetadataAwareInterface::deleteCatalogueMetadata Symfony\Component\Translation\Dumper\DumperInterface::dump Symfony\Component\Translation\Exception\ExceptionInterface::getCode Symfony\Component\Translation\Exception\ProviderExceptionInterface::getCode Symfony\Component\Translation\Extractor\ExtractorInterface::extract Symfony\Component\Translation\Extractor\ExtractorInterface::setPrefix Symfony\Component\Translation\MessageCatalogueInterface::set Symfony\Component\Translation\MessageCatalogueInterface::replace Symfony\Component\Translation\MessageCatalogueInterface::add Symfony\Component\Translation\MessageCatalogueInterface::addCatalogue Symfony\Component\Translation\MessageCatalogueInterface::addFallbackCatalogue Symfony\Component\Translation\MessageCatalogueInterface::addResource Symfony\Component\Translation\MetadataAwareInterface::setMetadata Symfony\Component\Translation\MetadataAwareInterface::deleteMetadata Symfony\Component\Translation\Reader\TranslationReaderInterface::read Symfony\Component\Translation\Writer\TranslationWriterInterface::write Symfony\Component\Validator\ConstraintValidatorInterface::initialize Symfony\Component\Validator\ConstraintValidatorInterface::validate Symfony\Component\Validator\ConstraintViolationListInterface::add Symfony\Component\Validator\ConstraintViolationListInterface::addAll Symfony\Component\Validator\ConstraintViolationListInterface::set Symfony\Component\Validator\ConstraintViolationListInterface::remove Symfony\Component\Validator\ConstraintViolationListInterface::count Symfony\Component\Validator\ConstraintViolationListInterface::offsetExists Symfony\Component\Validator\ConstraintViolationListInterface::offsetGet Symfony\Component\Validator\ConstraintViolationListInterface::offsetSet Symfony\Component\Validator\ConstraintViolationListInterface::offsetUnset Symfony\Component\Validator\Context\ExecutionContextInterface::addViolation Symfony\Component\Validator\Context\ExecutionContextInterface::setNode Symfony\Component\Validator\Context\ExecutionContextInterface::setGroup Symfony\Component\Validator\Context\ExecutionContextInterface::setConstraint Symfony\Component\Validator\Context\ExecutionContextInterface::markGroupAsValidated Symfony\Component\Validator\Context\ExecutionContextInterface::markConstraintAsValidated Symfony\Component\Validator\Context\ExecutionContextInterface::markObjectAsInitialized Symfony\Component\Validator\Exception\ExceptionInterface::getCode Symfony\Component\Validator\ObjectInitializerInterface::initialize Symfony\Component\Validator\Violation\ConstraintViolationBuilderInterface::addViolation Symfony\Component\VarDumper\Cloner\DumperInterface::dumpScalar Symfony\Component\VarDumper\Cloner\DumperInterface::dumpString Symfony\Component\VarDumper\Cloner\DumperInterface::enterHash Symfony\Component\VarDumper\Cloner\DumperInterface::leaveHash Symfony\Component\VarDumper\Dumper\DataDumperInterface::dump Symfony\Component\VarExporter\Exception\ExceptionInterface::getCode Symfony\Component\Workflow\Exception\ExceptionInterface::getCode Symfony\Component\Workflow\MarkingStore\MarkingStoreInterface::setMarking Symfony\Component\Workflow\Metadata\MetadataStoreInterface::getMetadata Symfony\Component\Workflow\Validator\DefinitionValidatorInterface::validate Symfony\Component\Yaml\Exception\ExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\ClientExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\DecodingExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\ExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\HttpExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\RedirectionExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\ServerExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\TimeoutExceptionInterface::getCode Symfony\Contracts\HttpClient\Exception\TransportExceptionInterface::getCode Symfony\Contracts\HttpClient\ResponseStreamInterface::next Symfony\Contracts\HttpClient\ResponseStreamInterface::valid Symfony\Contracts\HttpClient\ResponseStreamInterface::rewind Symfony\Contracts\Service\ResetInterface::reset Symfony\Contracts\Translation\LocaleAwareInterface::setLocale ```
243 standalone class methods ``` Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector::getManagers Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector::getConnections Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector::getQueries Symfony\Bridge\Doctrine\DataCollector\DoctrineDataCollector::getTime Symfony\Bridge\Doctrine\Form\DoctrineOrmTypeGuesser::getMetadata Symfony\Bridge\Monolog\Handler\ConsoleHandler::setOutput Symfony\Bridge\Monolog\Handler\ConsoleHandler::onCommand Symfony\Bridge\Monolog\Handler\ConsoleHandler::onTerminate Symfony\Bridge\Monolog\Handler\NotifierHandler::getHighestRecord Symfony\Bridge\Monolog\Handler\ServerLogHandler::nullErrorHandler Symfony\Bridge\Monolog\Handler\ServerLogHandler::createSocket Symfony\Bridge\Twig\Command\DebugCommand::getMetadata Symfony\Bridge\Twig\Command\LintCommand::findFiles Symfony\Bridge\Twig\Command\LintCommand::display Symfony\Bridge\Twig\Command\LintCommand::displayJson Symfony\Bridge\Twig\Command\LintCommand::renderException Symfony\Bridge\Twig\DataCollector\TwigDataCollector::getComputedData Symfony\Bridge\Twig\Extension\WorkflowExtension::getMetadata Symfony\Bundle\FrameworkBundle\Command\AbstractConfigCommand::listBundles Symfony\Bundle\FrameworkBundle\Command\AbstractConfigCommand::validateConfiguration Symfony\Bundle\FrameworkBundle\Command\ConfigDebugCommand::getConfig Symfony\Bundle\FrameworkBundle\Console\Descriptor\Descriptor::describeEventDispatcherListeners Symfony\Bundle\FrameworkBundle\Console\Descriptor\Descriptor::describeCallable Symfony\Bundle\FrameworkBundle\DependencyInjection\Configuration::addHttpClientRetrySection Symfony\Bundle\FrameworkBundle\Kernel\MicroKernelTrait::registerContainerConfiguration Symfony\Bundle\FrameworkBundle\Test\KernelTestCase::ensureKernelShutdown Symfony\Bundle\SecurityBundle\Debug\TraceableListenerTrait::getWrappedListener Symfony\Bundle\SecurityBundle\Debug\WrappedLazyListener::getWrappedListener Symfony\Bundle\SecurityBundle\Debug\WrappedListener::getWrappedListener Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createRoleHierarchy Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createAuthorization Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createFirewalls Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createContextListener Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createHashers Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::createHasher Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::addAuthenticatorFactory Symfony\Bundle\SecurityBundle\DependencyInjection\SecurityExtension::addUserProviderFactory Symfony\Bundle\WebProfilerBundle\Csp\ContentSecurityPolicyHandler::getDirectiveFallback Symfony\Component\BrowserKit\AbstractBrowser::getScript Symfony\Component\Cache\Adapter\AbstractAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\AbstractAdapter::doGet Symfony\Component\Cache\Adapter\AbstractTagAwareAdapter::handleUnserializeCallback Symfony\Component\Cache\Adapter\AbstractTagAwareAdapter::doGet Symfony\Component\Cache\Adapter\ArrayAdapter::freeze Symfony\Component\Cache\Adapter\ArrayAdapter::unfreeze Symfony\Component\Cache\Adapter\ChainAdapter::doGet Symfony\Component\Cache\Adapter\FilesystemAdapter::init Symfony\Component\Cache\Adapter\FilesystemAdapter::throwError Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter::init Symfony\Component\Cache\Adapter\FilesystemTagAwareAdapter::throwError Symfony\Component\Cache\Adapter\MemcachedAdapter::checkResultCode Symfony\Component\Cache\Adapter\PhpArrayAdapter::doGet Symfony\Component\Cache\Adapter\PhpFilesAdapter::init Symfony\Component\Cache\Adapter\PhpFilesAdapter::throwError Symfony\Component\Cache\Adapter\ProxyAdapter::doGet Symfony\Component\Cache\Adapter\TagAwareAdapter::doGet Symfony\Component\Cache\LockRegistry::compute Symfony\Component\Cache\LockRegistry::open Symfony\Component\Cache\Marshaller\DefaultMarshaller::handleUnserializeCallback Symfony\Component\Cache\Traits\AbstractAdapterTrait::handleUnserializeCallback Symfony\Component\Cache\Traits\ContractsTrait::doGet Symfony\Component\Cache\Traits\FilesystemCommonTrait::init Symfony\Component\Cache\Traits\FilesystemCommonTrait::throwError Symfony\Component\Cache\Traits\FilesystemTrait::init Symfony\Component\Cache\Traits\FilesystemTrait::throwError Symfony\Component\Config\Definition\BaseNode::validateType Symfony\Component\Config\Loader\FileLoader::setCurrentDir Symfony\Component\Config\Loader\FileLoader::doImport Symfony\Component\Config\ResourceCheckerConfigCache::safelyUnserialize Symfony\Component\Console\Command\LockableTrait::release Symfony\Component\Console\Descriptor\Descriptor::describeInputArgument Symfony\Component\Console\Descriptor\Descriptor::describeInputOption Symfony\Component\Console\Descriptor\Descriptor::describeInputDefinition Symfony\Component\Console\Descriptor\Descriptor::describeCommand Symfony\Component\Console\Descriptor\Descriptor::describeApplication Symfony\Component\Console\Helper\Helper::formatTime Symfony\Component\Console\Helper\ProgressBar::getMessage Symfony\Component\Console\Helper\Table::setStyleDefinition Symfony\Component\Console\Helper\Table::render Symfony\Component\Console\Helper\Table::renderRowSeparator Symfony\Component\Console\Helper\Table::renderRow Symfony\Component\Console\Helper\Table::calculateNumberOfColumns Symfony\Component\Console\Helper\Table::calculateColumnsWidth Symfony\Component\Console\Helper\Table::cleanup Symfony\Component\Console\Input\Input::parse Symfony\Component\Console\Output\Output::doWrite Symfony\Component\DependencyInjection\Argument\ReferenceSetArgumentTrait::setValues Symfony\Component\DependencyInjection\Compiler\RegisterAutoconfigureAttributesPass::registerForAutoconfiguration Symfony\Component\DependencyInjection\Container::make Symfony\Component\DependencyInjection\Container::load Symfony\Component\DependencyInjection\Loader\YamlFileLoader::parseDefinition Symfony\Component\DependencyInjection\ParameterBag\ParameterBag::isResolved Symfony\Component\DomCrawler\AbstractUriElement::setNode Symfony\Component\DomCrawler\Field\FormField::initialize Symfony\Component\ErrorHandler\ErrorHandler::handleException Symfony\Component\ExpressionLanguage\Compiler::getFunction Symfony\Component\ExpressionLanguage\Node\Node::toArray Symfony\Component\ExpressionLanguage\Parser::parseExpression Symfony\Component\ExpressionLanguage\Parser::getPrimary Symfony\Component\Filesystem\Filesystem::linkException Symfony\Component\Form\Extension\Core\DataAccessor\PropertyPathAccessor::getPropertyValue Symfony\Component\Form\Extension\Core\Type\ChoiceType::addSubForms Symfony\Component\Form\Extension\Core\Type\ChoiceType::addSubForm Symfony\Component\Form\Extension\Core\Type\MoneyType::getPattern Symfony\Component\Form\Extension\DataCollector\FormDataCollector::recursiveBuildPreliminaryFormTree Symfony\Component\Form\Extension\DataCollector\FormDataCollector::recursiveBuildFinalFormTree Symfony\Component\Form\Extension\Validator\ViolationMapper\ViolationPathIterator::mapsForm Symfony\Component\Form\Test\FormIntegrationTestCase::getExtensions Symfony\Component\Form\Test\FormIntegrationTestCase::getTypeExtensions Symfony\Component\Form\Test\FormIntegrationTestCase::getTypes Symfony\Component\Form\Test\FormIntegrationTestCase::getTypeGuessers Symfony\Component\Form\Test\FormPerformanceTestCase::setMaxRunningTime Symfony\Component\Form\Test\FormPerformanceTestCase::requiresFeatureSet Symfony\Component\Form\Test\TypeTestCase::assertDateTimeEquals Symfony\Component\Form\Test\TypeTestCase::assertDateIntervalEquals Symfony\Component\HttpClient\Response\CommonResponseTrait::toStream Symfony\Component\HttpClient\Response\StreamWrapper::stream_cast Symfony\Component\HttpFoundation\Request::prepareRequestUri Symfony\Component\HttpKernel\DataCollector\ConfigDataCollector::getBundles Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getLogs Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getProcessedLogs Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getFilters Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getPriorities Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::countErrors Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::countDeprecations Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::countWarnings Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::countScreams Symfony\Component\HttpKernel\DataCollector\LoggerDataCollector::getCompilerLogs Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getMethod Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getPathInfo Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getSessionMetadata Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getSessionAttributes Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getStatelessCheck Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getSessionUsages Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getFlashes Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getContent Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getContentType Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getStatusText Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getStatusCode Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getFormat Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getLocale Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getIdentifier Symfony\Component\HttpKernel\DataCollector\RequestDataCollector::getForwardToken Symfony\Component\HttpKernel\DependencyInjection\ConfigurableExtension::loadInternal Symfony\Component\Intl\Data\Generator\AbstractDataGenerator::compileTemporaryBundles Symfony\Component\Intl\Data\Generator\AbstractDataGenerator::preGenerate Symfony\Component\Intl\Data\Util\ArrayAccessibleResourceBundle::get Symfony\Component\Intl\Data\Util\RecursiveArrayAccess::get Symfony\Component\Ldap\Security\LdapUserProvider::getAttributeValue Symfony\Component\Mailer\Bridge\Mailjet\Transport\MailjetApiTransport::castCustomHeader Symfony\Component\Mailer\Transport\Dsn::getOption Symfony\Component\Messenger\Bridge\Doctrine\Transport\Connection::executeQuery Symfony\Component\Messenger\Bridge\Doctrine\Transport\Connection::executeStatement Symfony\Component\Messenger\Command\AbstractFailedMessagesCommand::interactiveChooseFailureTransport Symfony\Component\Messenger\DataCollector\MessengerDataCollector::registerBus Symfony\Component\Messenger\Handler\HandlerDescriptor::getOption Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase::getStackMock Symfony\Component\Messenger\Test\Middleware\MiddlewareTestCase::getThrowingStackMock Symfony\Component\Messenger\Transport\Serialization\PhpSerializer::handleUnserializeCallback Symfony\Component\Mime\Header\Headers::getHeaderBody Symfony\Component\Notifier\Transport\Dsn::getOption Symfony\Component\Notifier\Transport\Dsn::getRequiredOption Symfony\Component\Process\Exception\ProcessFailedException::getProcess Symfony\Component\Process\Exception\ProcessTimedOutException::getProcess Symfony\Component\Process\Exception\ProcessTimedOutException::getExceededTimeout Symfony\Component\Process\Process::start Symfony\Component\Process\Process::addOutput Symfony\Component\Process\Process::addErrorOutput Symfony\Component\Process\Process::checkTimeout Symfony\Component\Process\Process::setOptions Symfony\Component\Process\Process::updateStatus Symfony\Component\Process\Process::readPipesForOutput Symfony\Component\Process\Process::readPipes Symfony\Component\Process\Process::resetProcessData Symfony\Component\Process\Process::requireProcessIsStarted Symfony\Component\Process\Process::requireProcessIsTerminated Symfony\Component\RateLimiter\Policy\Window::add Symfony\Component\Routing\Loader\AnnotationClassLoader::configureRoute Symfony\Component\Routing\Matcher\UrlMatcher::getExpressionLanguage Symfony\Component\Security\Core\User\InMemoryUserProvider::createUser Symfony\Component\Security\Http\Authenticator\JsonLoginAuthenticator::setTranslator Symfony\Component\Security\Http\Firewall\ContextListener::safelyUnserialize Symfony\Component\Security\Http\Firewall\ContextListener::handleUnserializeCallback Symfony\Component\Security\Http\Firewall\ExceptionListener::throwUnauthorizedException Symfony\Component\Serializer\Exception\PartialDenormalizationException::getData Symfony\Component\Serializer\Normalizer\AbstractObjectNormalizer::setAttributeValue Symfony\Component\Translation\Catalogue\AbstractOperation::processDomain Symfony\Component\Translation\Command\XliffLintCommand::display Symfony\Component\Translation\Command\XliffLintCommand::displayJson Symfony\Component\Translation\Command\XliffLintCommand::getDirectoryIterator Symfony\Component\Translation\Command\XliffLintCommand::isReadable Symfony\Component\Translation\DataCollector\TranslationDataCollector::getLocale Symfony\Component\Translation\DataCollector\TranslationDataCollector::getFallbackLocales Symfony\Component\Translation\Extractor\PhpExtractor::seekToNextRelevantToken Symfony\Component\Translation\Extractor\PhpExtractor::skipMethodArgument Symfony\Component\Translation\Extractor\PhpExtractor::parseTokens Symfony\Component\Translation\Provider\Dsn::getOption Symfony\Component\Translation\Provider\Dsn::getRequiredOption Symfony\Component\Translation\Util\ArrayConverter::getElementByPath Symfony\Component\Validator\Constraints\IsbnValidator::getMessage Symfony\Component\Validator\Exception\ValidationFailedException::getValue Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setDefaultTimezone Symfony\Component\Validator\Test\ConstraintValidatorTestCase::restoreDefaultTimezone Symfony\Component\Validator\Test\ConstraintValidatorTestCase::createContext Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setGroup Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setObject Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setProperty Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setValue Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setRoot Symfony\Component\Validator\Test\ConstraintValidatorTestCase::setPropertyPath Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectNoValidate Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectValidateAt Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectValidateValue Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectFailingValueValidation Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectValidateValueAt Symfony\Component\Validator\Test\ConstraintValidatorTestCase::expectViolationsAt Symfony\Component\Validator\Test\ConstraintValidatorTestCase::assertNoViolation Symfony\Component\VarDumper\Caster\ClassStub::wrapCallable Symfony\Component\VarDumper\Caster\LinkStub::getComposerRoot Symfony\Component\VarDumper\Caster\StubCaster::castCutArray Symfony\Component\VarDumper\Cloner\Data::getStub Symfony\Component\VarDumper\Dumper\CliDumper::getSourceLink Symfony\Component\VarDumper\Dumper\HtmlDumper::setTheme Symfony\Component\VarDumper\Dumper\HtmlDumper::setDumpHeader Symfony\Component\VarDumper\Dumper\HtmlDumper::setDumpBoundaries Symfony\Component\VarDumper\Dumper\HtmlDumper::getDumpHeader Symfony\Component\VarDumper\Server\Connection::createSocket Symfony\Component\VarDumper\Test\VarDumperTestTrait::assertDumpEquals Symfony\Component\VarDumper\Test\VarDumperTestTrait::assertDumpMatchesFormat Symfony\Component\VarDumper\VarDumper::dump Symfony\Component\Workflow\Event\Event::getMetadata Symfony\Component\Workflow\Metadata\GetMetadataTrait::getMetadata Symfony\Component\Yaml\Parser::doParse Symfony\Component\Yaml\Parser::parseBlock Symfony\Component\Yaml\Tag\TaggedValue::getValue Symfony\Contracts\Translation\Test\TranslatorTest::getTransTests Symfony\Contracts\Translation\Test\TranslatorTest::getTransChoiceTests Symfony\Contracts\Translation\Test\TranslatorTest::getInterval Symfony\Contracts\Translation\Test\TranslatorTest::getNonMatchingMessages Symfony\Contracts\Translation\Test\TranslatorTest::getChooseTests Symfony\Contracts\Translation\Test\TranslatorTest::validateMatrix Symfony\Contracts\Translation\Test\TranslatorTest::generateTestData ```
croensch commented 1 year ago

This might be interesting here... We tried to use the HttpClient and mock a response for PHPUnit but did so by calling static::createMock(MockResponse::class) (i know :upside_down_face:). Which lead to:

Fatal error: Method Mock_MockResponse_c3de0118::__destruct() cannot declare a return type in /application/vendor/phpunit/phpunit/src/Framework/MockObject/MockClass.php(51) : eval()'d code on line 276

I guess that PHPUnit's magic copies the type from MockResponse::__destruct() which is actually:

    use TransportResponseTrait {
        doDestruct as public __destruct;
    }

So should the type (added in 6.1) of the method of the trait be removed again just to be safe?

stof commented 1 year ago

I would report that as a bug in PHPUnit, as the return type being declared is void, and that one should be valid on __destruct

stof commented 1 year ago

And if it is PHP that forbids return types in __destruct, we should maybe avoid doDestruct as public __destruct; and instead declaring __destruct by calling doDestruct

nicolas-grekas commented 1 year ago

I took care of MockResponse in #49407

nicolas-grekas commented 1 year ago

*ExceptionInterface::getCode are false positives, we don't need to document their return type.

These also, because the interface has an @template annotation:

Symfony\Contracts\HttpClient\ResponseStreamInterface::next
Symfony\Contracts\HttpClient\ResponseStreamInterface::valid
Symfony\Contracts\HttpClient\ResponseStreamInterface::rewind

Might be the case for more Iterator-related methods.

wouterj commented 1 year ago

Yes, my script uses ReflectionClass::getMethods(), which apparently includes methods defined by PHP internal classes as well (as is the case for Exception::getCode().

derrabus commented 1 year ago

Yes, my script uses ReflectionClass::getMethods(), which apparently includes methods defined by PHP internal classes as well (as is the case for Exception::getCode().

Same goes for interfaces extending ArrayAccess and friends. Can you limit that script to methods declared or overridden by a given interface, ignoring those that are just inherited?

stof commented 1 year ago

ReflectionClass::getMethods() indeed includes inherited methods. You need to check the declaring class of the methods

94noni commented 1 year ago

Seeing from the outside, the work done by all of you is very impressive πŸ‘πŸ» πŸ‘πŸ»

wouterj commented 1 year ago

Thanks for the hint @stof.

I've edited my script slightly so we can use it as a CI check enforcing return types on interface: #49439 For now, that PR represents a living list of missing return types :)

nicolas-grekas commented 1 year ago

To anyone willing to help on this issue: tests don't need to be updated, unless required by the changes on non-test files. We don't care about provider or methods having types in tests.

wouterj commented 1 year ago

For everyone helping here: Thank you!

Symfony 6.3 will be released with return types, either PHP ones or PHPdoc ones, for all methods in the bridges and components and for all interfaces of Symfony.