diff --git a/APM/CommandLoggerRegistry.php b/APM/CommandLoggerRegistry.php index 5d896db7..27a5c053 100644 --- a/APM/CommandLoggerRegistry.php +++ b/APM/CommandLoggerRegistry.php @@ -22,14 +22,14 @@ public function __construct(iterable $commandLoggers) public function register(): void { - array_map(static function (CommandLoggerInterface $commandLogger) { + array_map(static function (CommandLoggerInterface $commandLogger): void { $commandLogger->register(); }, $this->commandLoggers); } public function unregister(): void { - array_map(static function (CommandLoggerInterface $commandLogger) { + array_map(static function (CommandLoggerInterface $commandLogger): void { $commandLogger->unregister(); }, $this->commandLoggers); } diff --git a/Command/DoctrineODMCommand.php b/Command/DoctrineODMCommand.php index 496da907..46988364 100644 --- a/Command/DoctrineODMCommand.php +++ b/Command/DoctrineODMCommand.php @@ -21,8 +21,7 @@ public function __construct(private ManagerRegistry $registry) parent::__construct(); } - /** @param string $dmName */ - public static function setApplicationDocumentManager(Application $application, $dmName): void + public static function setApplicationDocumentManager(Application $application, string $dmName): void { $dm = $application->getKernel()->getContainer()->get('doctrine_mongodb')->getManager($dmName); $helperSet = $application->getHelperSet(); diff --git a/Command/LoadDataFixturesDoctrineODMCommand.php b/Command/LoadDataFixturesDoctrineODMCommand.php index e43e10b5..2e0e43ff 100644 --- a/Command/LoadDataFixturesDoctrineODMCommand.php +++ b/Command/LoadDataFixturesDoctrineODMCommand.php @@ -83,7 +83,7 @@ protected function execute(InputInterface $input, OutputInterface $output): int $purger = new MongoDBPurger($dm); $executor = new MongoDBExecutor($dm, $purger); - $executor->setLogger(static function ($message) use ($output) { + $executor->setLogger(static function ($message) use ($output): void { $output->writeln(sprintf(' > %s', $message)); }); $executor->execute($fixtures, $input->getOption('append')); diff --git a/DependencyInjection/Compiler/DoctrineMongoDBMappingsPass.php b/DependencyInjection/Compiler/DoctrineMongoDBMappingsPass.php index 574cd605..ff04ddce 100644 --- a/DependencyInjection/Compiler/DoctrineMongoDBMappingsPass.php +++ b/DependencyInjection/Compiler/DoctrineMongoDBMappingsPass.php @@ -32,7 +32,7 @@ final class DoctrineMongoDBMappingsPass extends RegisterMappingsPass * executes if this parameter exists in the service container. * @param string[] $aliasMap Map of alias to namespace. */ - public function __construct($driver, array $namespaces, array $managerParameters, $enabledParameter = false, array $aliasMap = []) + public function __construct(Definition|Reference $driver, array $namespaces, array $managerParameters, string|false $enabledParameter = false, array $aliasMap = []) { $managerParameters[] = 'doctrine_mongodb.odm.default_document_manager'; @@ -58,10 +58,8 @@ public function __construct($driver, array $namespaces, array $managerParameters * enable the mapping. Set to false to not do any check, * optional. * @param string[] $aliasMap Map of alias to namespace. - * - * @return DoctrineMongoDBMappingsPass */ - public static function createXmlMappingDriver(array $mappings, array $managerParameters, $enabledParameter = false, array $aliasMap = []) + public static function createXmlMappingDriver(array $mappings, array $managerParameters, string|false $enabledParameter = false, array $aliasMap = []): DoctrineMongoDBMappingsPass { $arguments = [$mappings, '.mongodb.xml']; $locator = new Definition(SymfonyFileLocator::class, $arguments); @@ -80,10 +78,8 @@ public static function createXmlMappingDriver(array $mappings, array $managerPar * enable the mapping. Set to false to not do any check, * optional. * @param string[] $aliasMap Map of alias to namespace. - * - * @return DoctrineMongoDBMappingsPass */ - public static function createPhpMappingDriver(array $mappings, array $managerParameters = [], $enabledParameter = false, array $aliasMap = []) + public static function createPhpMappingDriver(array $mappings, array $managerParameters = [], string|false $enabledParameter = false, array $aliasMap = []): DoctrineMongoDBMappingsPass { $arguments = [$mappings, '.php']; $locator = new Definition(SymfonyFileLocator::class, $arguments); @@ -103,10 +99,8 @@ public static function createPhpMappingDriver(array $mappings, array $managerPar * enable the mapping. Set to false to not do any check, * optional. * @param string[] $aliasMap Map of alias to namespace. - * - * @return DoctrineMongoDBMappingsPass */ - public static function createAttributeMappingDriver(array $namespaces, array $directories, array $managerParameters, $enabledParameter = false, array $aliasMap = []) + public static function createAttributeMappingDriver(array $namespaces, array $directories, array $managerParameters, string|false $enabledParameter = false, array $aliasMap = []): DoctrineMongoDBMappingsPass { $driver = new Definition(AttributeDriver::class, [$directories]); @@ -124,10 +118,8 @@ public static function createAttributeMappingDriver(array $namespaces, array $di * enable the mapping. Set to false to not do any check, * optional. * @param string[] $aliasMap Map of alias to namespace. - * - * @return DoctrineMongoDBMappingsPass */ - public static function createStaticPhpMappingDriver(array $namespaces, array $directories, array $managerParameters = [], $enabledParameter = false, array $aliasMap = []) + public static function createStaticPhpMappingDriver(array $namespaces, array $directories, array $managerParameters = [], string|false $enabledParameter = false, array $aliasMap = []): DoctrineMongoDBMappingsPass { $driver = new Definition(StaticPHPDriver::class, [$directories]); diff --git a/DependencyInjection/DoctrineMongoDBExtension.php b/DependencyInjection/DoctrineMongoDBExtension.php index cfda1637..fc4e6be6 100644 --- a/DependencyInjection/DoctrineMongoDBExtension.php +++ b/DependencyInjection/DoctrineMongoDBExtension.php @@ -37,14 +37,13 @@ use Symfony\Component\Messenger\MessageBusInterface; use Throwable; -use function array_keys; +use function array_key_first; use function array_merge; use function class_exists; use function class_implements; use function in_array; use function interface_exists; use function is_dir; -use function reset; use function sprintf; /** @@ -71,15 +70,13 @@ public function load(array $configs, ContainerBuilder $container): void $loader->load('mongodb.xml'); if (empty($config['default_connection'])) { - $keys = array_keys($config['connections']); - $config['default_connection'] = reset($keys); + $config['default_connection'] = array_key_first($config['connections']); } $container->setParameter('doctrine_mongodb.odm.default_connection', $config['default_connection']); if (empty($config['default_document_manager'])) { - $keys = array_keys($config['document_managers']); - $config['default_document_manager'] = reset($keys); + $config['default_document_manager'] = array_key_first($config['document_managers']); } $container->setParameter('doctrine_mongodb.odm.default_document_manager', $config['default_document_manager']); @@ -156,7 +153,7 @@ public function load(array $configs, ContainerBuilder $container): void * * @return array */ - protected function overrideParameters($options, ContainerBuilder $container) + protected function overrideParameters(array $options, ContainerBuilder $container): array { $overrides = [ 'proxy_namespace', @@ -189,11 +186,11 @@ protected function overrideParameters($options, ContainerBuilder $container) * Loads the document managers configuration. * * @param array $dmConfigs An array of document manager configs - * @param string $defaultDM The default document manager name + * @param string|null $defaultDM The default document manager name * @param string $defaultDB The default db name * @param ContainerBuilder $container A ContainerBuilder instance */ - protected function loadDocumentManagers(array $dmConfigs, $defaultDM, $defaultDB, ContainerBuilder $container) + protected function loadDocumentManagers(array $dmConfigs, string|null $defaultDM, string $defaultDB, ContainerBuilder $container): void { $dms = []; foreach ($dmConfigs as $name => $documentManager) { @@ -214,11 +211,11 @@ protected function loadDocumentManagers(array $dmConfigs, $defaultDM, $defaultDB * Loads a document manager configuration. * * @param array $documentManager A document manager configuration array - * @param string $defaultDM The default document manager name + * @param string|null $defaultDM The default document manager name * @param string $defaultDB The default db name * @param ContainerBuilder $container A ContainerBuilder instance */ - protected function loadDocumentManager(array $documentManager, $defaultDM, $defaultDB, ContainerBuilder $container) + protected function loadDocumentManager(array $documentManager, string|null $defaultDM, string $defaultDB, ContainerBuilder $container): void { $connectionName = $documentManager['connection'] ?? $documentManager['name']; $configurationId = sprintf('doctrine_mongodb.odm.%s_configuration', $documentManager['name']); @@ -351,7 +348,7 @@ protected function loadDocumentManager(array $documentManager, $defaultDM, $defa * @param array $config An array of connections configurations * @param ContainerBuilder $container A ContainerBuilder instance */ - protected function loadConnections(array $connections, ContainerBuilder $container) + protected function loadConnections(array $connections, ContainerBuilder $container): void { $cons = []; foreach ($connections as $name => $connection) { @@ -488,7 +485,7 @@ private function normalizeDriverOptions(array $connection): array * In the case of bundles everything is really optional (which leads to autodetection for this bundle) but * in the mappings key everything except alias is a required argument. */ - protected function loadDocumentManagerBundlesMappingInformation(array $documentManager, Definition $odmConfigDef, ContainerBuilder $container) + protected function loadDocumentManagerBundlesMappingInformation(array $documentManager, Definition $odmConfigDef, ContainerBuilder $container): void { // reset state of drivers and alias map. They are only used by this methods and children. $this->drivers = []; @@ -553,13 +550,12 @@ public function getAlias(): string * * @return string The XML namespace */ - public function getNamespace() + public function getNamespace(): string { return 'http://symfony.com/schema/dic/doctrine/odm/mongodb'; } - /** @return string */ - public function getXsdValidationBasePath() + public function getXsdValidationBasePath(): string { return __DIR__ . '/../Resources/config/schema'; } diff --git a/DoctrineMongoDBBundle.php b/DoctrineMongoDBBundle.php index bd88f530..c168fdf5 100644 --- a/DoctrineMongoDBBundle.php +++ b/DoctrineMongoDBBundle.php @@ -33,8 +33,7 @@ class DoctrineMongoDBBundle extends Bundle /** @var callable|null */ private $autoloader; - /** @return void */ - public function build(ContainerBuilder $container) + public function build(ContainerBuilder $container): void { $container->addCompilerPass(new CacheCompatibilityPass()); $container->addCompilerPass(new RegisterEventListenersAndSubscribersPass('doctrine_mongodb.odm.connections', 'doctrine_mongodb.odm.%s_connection.event_manager', 'doctrine_mongodb.odm'), PassConfig::TYPE_BEFORE_OPTIMIZATION); @@ -62,8 +61,7 @@ public function getContainerExtension(): ?ExtensionInterface return new DoctrineMongoDBExtension(); } - /** @return void */ - public function boot() + public function boot(): void { $registry = $this->container->get('doctrine_mongodb'); assert($registry instanceof ManagerRegistry); @@ -106,8 +104,7 @@ private function unregisterCommandLoggers(): void $commandLoggerRegistry->unregister(); } - /** @return void */ - public function shutdown() + public function shutdown(): void { $this->unregisterAutoloader(); $this->unregisterCommandLoggers(); diff --git a/Fixture/FixtureGroupInterface.php b/Fixture/FixtureGroupInterface.php index fad76935..4c8bcc3e 100644 --- a/Fixture/FixtureGroupInterface.php +++ b/Fixture/FixtureGroupInterface.php @@ -15,5 +15,5 @@ interface FixtureGroupInterface * * @return string[] */ - public static function getGroups(); + public static function getGroups(): array; } diff --git a/Form/ChoiceList/MongoDBQueryBuilderLoader.php b/Form/ChoiceList/MongoDBQueryBuilderLoader.php index f2e7eeff..1911e744 100644 --- a/Form/ChoiceList/MongoDBQueryBuilderLoader.php +++ b/Form/ChoiceList/MongoDBQueryBuilderLoader.php @@ -27,18 +27,9 @@ class MongoDBQueryBuilderLoader implements EntityLoaderInterface /** * Construct an ORM Query Builder Loader - * - * @param Builder|Closure $queryBuilder - * @param string $class */ - public function __construct($queryBuilder, ?ObjectManager $manager = null, $class = null) + public function __construct(Builder|Closure $queryBuilder, ?ObjectManager $manager = null, ?string $class = null) { - // If a query builder was passed, it must be a closure or QueryBuilder - // instance - if (! ($queryBuilder instanceof Builder || $queryBuilder instanceof Closure)) { - throw new UnexpectedTypeException($queryBuilder, Builder::class . ' or ' . Closure::class); - } - if ($queryBuilder instanceof Closure) { $queryBuilder = $queryBuilder($manager->getRepository($class)); diff --git a/Form/DoctrineMongoDBExtension.php b/Form/DoctrineMongoDBExtension.php index 7428e77c..a74be8ec 100644 --- a/Form/DoctrineMongoDBExtension.php +++ b/Form/DoctrineMongoDBExtension.php @@ -14,12 +14,8 @@ */ class DoctrineMongoDBExtension extends AbstractExtension { - /** @var ManagerRegistry */ - protected $registry; - - public function __construct(ManagerRegistry $registry) + public function __construct(private ManagerRegistry $registry) { - $this->registry = $registry; } /** @return FormTypeInterface[] */ diff --git a/Form/DoctrineMongoDBTypeGuesser.php b/Form/DoctrineMongoDBTypeGuesser.php index 8330eec4..ed663502 100644 --- a/Form/DoctrineMongoDBTypeGuesser.php +++ b/Form/DoctrineMongoDBTypeGuesser.php @@ -27,15 +27,11 @@ */ class DoctrineMongoDBTypeGuesser implements FormTypeGuesserInterface { - /** @var ManagerRegistry */ - protected $registry; - /** @var array */ private array $cache = []; - public function __construct(ManagerRegistry $registry) + public function __construct(private ManagerRegistry $registry) { - $this->registry = $registry; } public function guessType(string $class, string $property): ?TypeGuess @@ -165,12 +161,8 @@ public function guessPattern(string $class, string $property): ?ValueGuess return null; } - /** - * @param string $class - * - * @return array{ClassMetadata, string}|null - */ - protected function getMetadata($class) + /** @return array{ClassMetadata, string}|null */ + protected function getMetadata(string $class): ?array { if (array_key_exists($class, $this->cache)) { return $this->cache[$class]; diff --git a/Form/Type/DocumentType.php b/Form/Type/DocumentType.php index fe708c39..9f9ef830 100644 --- a/Form/Type/DocumentType.php +++ b/Form/Type/DocumentType.php @@ -60,13 +60,9 @@ public function configureOptions(OptionsResolver $resolver): void $resolver->setAllowedTypes('document_manager', ['null', 'string', DocumentManager::class]); } - /** - * @internal Symfony 2.8 compatibility - * - * @return string - */ + /** @internal Symfony 2.8 compatibility */ #[ReturnTypeWillChange] - public function getBlockPrefix() + public function getBlockPrefix(): string { return 'document'; } diff --git a/Loader/SymfonyFixturesLoader.php b/Loader/SymfonyFixturesLoader.php index 61f8876e..e37b926b 100644 --- a/Loader/SymfonyFixturesLoader.php +++ b/Loader/SymfonyFixturesLoader.php @@ -67,10 +67,9 @@ public function addFixture(FixtureInterface $fixture): void * Overridden to not allow new fixture classes to be instantiated. * * @param string $class - * - * @return FixtureInterface + * @phpcsSuppress SlevomatCodingStandard.TypeHints.ParameterTypeHint.MissingAnyTypeHint */ - protected function createFixture($class) + protected function createFixture($class): FixtureInterface { /* * We don't actually need to create the fixture. We just @@ -95,7 +94,7 @@ protected function createFixture($class) * * @return FixtureInterface[] */ - public function getFixtures(array $groups = []) + public function getFixtures(array $groups = []): array { $fixtures = parent::getFixtures(); @@ -135,7 +134,7 @@ private function addGroupsFixtureMapping(string $className, array $groups): void } /** @param array, FixtureInterface> $fixtures An array of fixtures with class names as keys */ - private function validateDependencies(array $fixtures, FixtureInterface $fixture) + private function validateDependencies(array $fixtures, FixtureInterface $fixture): void { if (! $fixture instanceof DependentFixtureInterface) { return; diff --git a/Loader/SymfonyFixturesLoaderInterface.php b/Loader/SymfonyFixturesLoaderInterface.php index 13078b08..b94ec849 100644 --- a/Loader/SymfonyFixturesLoaderInterface.php +++ b/Loader/SymfonyFixturesLoaderInterface.php @@ -15,14 +15,12 @@ interface SymfonyFixturesLoaderInterface * * @param list $fixtures */ - public function addFixtures(array $fixtures); + public function addFixtures(array $fixtures): void; /** * Add a single fixture - * - * @return mixed */ - public function addFixture(FixtureInterface $fixture); + public function addFixture(FixtureInterface $fixture): void; /** * Returns the array of data fixtures to execute. @@ -31,5 +29,5 @@ public function addFixture(FixtureInterface $fixture); * * @return FixtureInterface[] */ - public function getFixtures(array $groups = []); + public function getFixtures(array $groups = []): array; } diff --git a/ManagerConfigurator.php b/ManagerConfigurator.php index 14a6d699..36878ec6 100644 --- a/ManagerConfigurator.php +++ b/ManagerConfigurator.php @@ -24,10 +24,8 @@ public function __construct(private array $enabledFilters = []) /** * Create a connection by name. - * - * @return void */ - public function configure(DocumentManager $documentManager) + public function configure(DocumentManager $documentManager): void { $this->enableFilters($documentManager); } diff --git a/ManagerRegistry.php b/ManagerRegistry.php index 113d9f85..41d5a420 100644 --- a/ManagerRegistry.php +++ b/ManagerRegistry.php @@ -13,13 +13,7 @@ class ManagerRegistry extends BaseManagerRegistry { - /** - * @param string $name - * @param string $defaultConnection - * @param string $defaultManager - * @param string $proxyInterfaceName - */ - public function __construct($name, array $connections, array $managers, $defaultConnection, $defaultManager, $proxyInterfaceName, ?ContainerInterface $container = null) + public function __construct(string $name, array $connections, array $managers, string $defaultConnection, string $defaultManager, string $proxyInterfaceName, ?ContainerInterface $container = null) { $this->container = $container; @@ -29,13 +23,9 @@ public function __construct($name, array $connections, array $managers, $default /** * Resolves a registered namespace alias to the full namespace. * - * @param string $alias - * - * @return string - * * @throws MongoDBException */ - public function getAliasNamespace($alias) + public function getAliasNamespace(string $alias): string { foreach (array_keys($this->getManagers()) as $name) { $objectManager = $this->getManager($name); diff --git a/Repository/ServiceRepositoryTrait.php b/Repository/ServiceRepositoryTrait.php index fb02880b..54478a8b 100644 --- a/Repository/ServiceRepositoryTrait.php +++ b/Repository/ServiceRepositoryTrait.php @@ -19,7 +19,7 @@ trait ServiceRepositoryTrait * @param string $documentClass The class name of the entity this repository manages * @psalm-param class-string $documentClass */ - public function __construct(ManagerRegistry $registry, $documentClass) + public function __construct(ManagerRegistry $registry, string $documentClass) { $manager = $registry->getManagerForClass($documentClass); assert($manager instanceof DocumentManager || $manager === null); diff --git a/Tests/DependencyInjection/DoctrineMongoDBExtensionTest.php b/Tests/DependencyInjection/DoctrineMongoDBExtensionTest.php index fbe69742..97157558 100644 --- a/Tests/DependencyInjection/DoctrineMongoDBExtensionTest.php +++ b/Tests/DependencyInjection/DoctrineMongoDBExtensionTest.php @@ -102,7 +102,7 @@ public function testAsDocumentListenerAttribute(): void } /** @param string|string[] $bundles */ - private function getContainer($bundles = 'OtherXmlBundle'): ContainerBuilder + private function getContainer(string|array $bundles = 'OtherXmlBundle'): ContainerBuilder { $bundles = (array) $bundles; diff --git a/Tests/Repository/ContainerRepositoryFactoryTest.php b/Tests/Repository/ContainerRepositoryFactoryTest.php index 7e82c2d3..1f11fc9a 100644 --- a/Tests/Repository/ContainerRepositoryFactoryTest.php +++ b/Tests/Repository/ContainerRepositoryFactoryTest.php @@ -116,8 +116,7 @@ public function testCustomRepositoryIsNotAValidClass(): void $factory->getRepository($dm, CoolDocument::class); } - /** @return MockObject|ContainerInterface */ - private function createContainer(array $services) + private function createContainer(array $services): MockObject|ContainerInterface { $container = $this->getMockBuilder(ContainerInterface::class)->getMock(); $container @@ -130,8 +129,7 @@ private function createContainer(array $services) return $container; } - /** @return MockObject|DocumentManager */ - private function createDocumentManager(array $documentRepositoryClasses) + private function createDocumentManager(array $documentRepositoryClasses): MockObject|DocumentManager { $classMetadatas = []; foreach ($documentRepositoryClasses as $documentClass => $documentRepositoryClass) { diff --git a/Validator/Constraints/Unique.php b/Validator/Constraints/Unique.php index d6c437e7..ab3e2f16 100644 --- a/Validator/Constraints/Unique.php +++ b/Validator/Constraints/Unique.php @@ -19,19 +19,18 @@ class Unique extends UniqueEntity /** * @param string[]|string $fields The combination of fields that must contain unique values or a set of options * @param bool|string[]|string $ignoreNull The combination of fields that ignore null values - * @param mixed $payload */ public function __construct( - $fields, + array|string $fields, ?string $message = null, string $service = 'doctrine_odm.mongodb.unique', ?string $em = null, ?string $entityClass = null, ?string $repositoryMethod = null, ?string $errorPath = null, - $ignoreNull = null, + bool|array|string|null $ignoreNull = null, ?array $groups = null, - $payload = null, + mixed $payload = null, array $options = [], ) { parent::__construct( diff --git a/phpcs.xml.dist b/phpcs.xml.dist index 0e6a99d2..6c3005b5 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -21,11 +21,6 @@ - - - - -