diff --git a/lib/Doctrine/ORM/AbstractQuery.php b/lib/Doctrine/ORM/AbstractQuery.php index 0aa53b09a44..055a2b836ca 100644 --- a/lib/Doctrine/ORM/AbstractQuery.php +++ b/lib/Doctrine/ORM/AbstractQuery.php @@ -507,10 +507,8 @@ protected function getResultSetMapping() /** * Allows to translate entity namespaces to full qualified names. - * - * @return void */ - private function translateNamespaces(Query\ResultSetMapping $rsm) + private function translateNamespaces(Query\ResultSetMapping $rsm): void { $translate = function ($alias): string { return $this->_em->getClassMetadata($alias)->getName(); @@ -1137,10 +1135,7 @@ private function executeUsingQueryCache($parameters = null, $hydrationMode = nul return $result; } - /** - * @return TimestampCacheKey|null - */ - private function getTimestampKey() + private function getTimestampKey(): ?TimestampCacheKey { $entityName = reset($this->_resultSetMapping->aliasMap); diff --git a/lib/Doctrine/ORM/Cache/DefaultCache.php b/lib/Doctrine/ORM/Cache/DefaultCache.php index 54c933799cc..fe8ba92f4df 100644 --- a/lib/Doctrine/ORM/Cache/DefaultCache.php +++ b/lib/Doctrine/ORM/Cache/DefaultCache.php @@ -278,10 +278,8 @@ public function getQueryCache($regionName = null) /** * @param ClassMetadata $metadata The entity metadata. * @param mixed $identifier The entity identifier. - * - * @return EntityCacheKey */ - private function buildEntityCacheKey(ClassMetadata $metadata, $identifier) + private function buildEntityCacheKey(ClassMetadata $metadata, $identifier): EntityCacheKey { if (! is_array($identifier)) { $identifier = $this->toIdentifierArray($metadata, $identifier); @@ -294,11 +292,12 @@ private function buildEntityCacheKey(ClassMetadata $metadata, $identifier) * @param ClassMetadata $metadata The entity metadata. * @param string $association The field name that represents the association. * @param mixed $ownerIdentifier The identifier of the owning entity. - * - * @return CollectionCacheKey */ - private function buildCollectionCacheKey(ClassMetadata $metadata, $association, $ownerIdentifier) - { + private function buildCollectionCacheKey( + ClassMetadata $metadata, + string $association, + $ownerIdentifier + ): CollectionCacheKey { if (! is_array($ownerIdentifier)) { $ownerIdentifier = $this->toIdentifierArray($metadata, $ownerIdentifier); } @@ -312,7 +311,7 @@ private function buildCollectionCacheKey(ClassMetadata $metadata, $association, * * @return array */ - private function toIdentifierArray(ClassMetadata $metadata, $identifier) + private function toIdentifierArray(ClassMetadata $metadata, $identifier): array { if (is_object($identifier) && $this->em->getMetadataFactory()->hasMetadataFor(ClassUtils::getClass($identifier))) { $identifier = $this->uow->getSingleIdentifierValue($identifier); diff --git a/lib/Doctrine/ORM/Cache/DefaultCacheFactory.php b/lib/Doctrine/ORM/Cache/DefaultCacheFactory.php index 45f3a88584d..f265c7a6261 100644 --- a/lib/Doctrine/ORM/Cache/DefaultCacheFactory.php +++ b/lib/Doctrine/ORM/Cache/DefaultCacheFactory.php @@ -207,12 +207,7 @@ public function getRegion(array $cache) return $this->regions[$cache['region']] = $region; } - /** - * @param string $name - * - * @return CacheAdapter - */ - private function createRegionCache($name) + private function createRegionCache(string $name): CacheAdapter { $cacheAdapter = clone $this->cache; diff --git a/lib/Doctrine/ORM/Cache/DefaultQueryCache.php b/lib/Doctrine/ORM/Cache/DefaultQueryCache.php index 8d31931dbac..b4c97fdb8a8 100644 --- a/lib/Doctrine/ORM/Cache/DefaultQueryCache.php +++ b/lib/Doctrine/ORM/Cache/DefaultQueryCache.php @@ -344,11 +344,9 @@ public function put(QueryCacheKey $key, ResultSetMapping $rsm, $result, array $h * @param array $assoc * @param mixed $assocValue * - * @return mixed[]|null - * * @psalm-return array{targetEntity: string, type: mixed, list?: array[], identifier?: array}|null */ - private function storeAssociationCache(QueryCacheKey $key, array $assoc, $assocValue) + private function storeAssociationCache(QueryCacheKey $key, array $assoc, $assocValue): ?array { $assocPersister = $this->uow->getEntityPersister($assoc['targetEntity']); $assocMetadata = $assocPersister->getClassMetadata(); @@ -398,13 +396,13 @@ private function storeAssociationCache(QueryCacheKey $key, array $assoc, $assocV } /** - * @param string $assocAlias - * @param object $entity - * * @return array|object */ - private function getAssociationValue(ResultSetMapping $rsm, $assocAlias, $entity) - { + private function getAssociationValue( + ResultSetMapping $rsm, + string $assocAlias, + object $entity + ) { $path = []; $alias = $assocAlias; diff --git a/lib/Doctrine/ORM/Cache/Persister/Entity/AbstractEntityPersister.php b/lib/Doctrine/ORM/Cache/Persister/Entity/AbstractEntityPersister.php index 5e96c309c63..25e24e73e8e 100644 --- a/lib/Doctrine/ORM/Cache/Persister/Entity/AbstractEntityPersister.php +++ b/lib/Doctrine/ORM/Cache/Persister/Entity/AbstractEntityPersister.php @@ -223,10 +223,7 @@ public function storeEntityCache($entity, EntityCacheKey $key) return $cached; } - /** - * @param object $entity - */ - private function storeJoinedAssociations($entity) + private function storeJoinedAssociations(object $entity): void { if ($this->joinedAssociations === null) { $associations = []; diff --git a/lib/Doctrine/ORM/Cache/Persister/Entity/NonStrictReadWriteCachedEntityPersister.php b/lib/Doctrine/ORM/Cache/Persister/Entity/NonStrictReadWriteCachedEntityPersister.php index c2b36c18d00..0cafd632090 100644 --- a/lib/Doctrine/ORM/Cache/Persister/Entity/NonStrictReadWriteCachedEntityPersister.php +++ b/lib/Doctrine/ORM/Cache/Persister/Entity/NonStrictReadWriteCachedEntityPersister.php @@ -98,13 +98,7 @@ public function update($entity) $this->queuedCache['update'][] = $entity; } - /** - * @param object $entity - * @param bool $isChanged - * - * @return bool - */ - private function updateCache($entity, $isChanged) + private function updateCache(object $entity, bool $isChanged): ?bool { $class = $this->metadataFactory->getMetadataFor(get_class($entity)); $key = new EntityCacheKey($class->rootEntityName, $this->uow->getEntityIdentifier($entity)); diff --git a/lib/Doctrine/ORM/Cache/Region/FileLockRegion.php b/lib/Doctrine/ORM/Cache/Region/FileLockRegion.php index 2a09b3c1b0c..a60b8d58505 100644 --- a/lib/Doctrine/ORM/Cache/Region/FileLockRegion.php +++ b/lib/Doctrine/ORM/Cache/Region/FileLockRegion.php @@ -83,10 +83,7 @@ public function __construct(Region $region, $directory, $lockLifetime) $this->lockLifetime = $lockLifetime; } - /** - * @return bool - */ - private function isLocked(CacheKey $key, ?Lock $lock = null) + private function isLocked(CacheKey $key, ?Lock $lock = null): bool { $filename = $this->getLockFileName($key); @@ -117,30 +114,23 @@ private function isLocked(CacheKey $key, ?Lock $lock = null) return true; } - /** - * @return string - */ - private function getLockFileName(CacheKey $key) + private function getLockFileName(CacheKey $key): string { return $this->directory . DIRECTORY_SEPARATOR . $key->hash . '.' . self::LOCK_EXTENSION; } /** - * @param string $filename - * - * @return string + * @return string|false */ - private function getLockContent($filename) + private function getLockContent(string $filename) { return @file_get_contents($filename); } /** - * @param string $filename - * - * @return int + * @return int|false */ - private function getLockTime($filename) + private function getLockTime(string $filename) { return @fileatime($filename); } diff --git a/lib/Doctrine/ORM/Cache/TimestampQueryCacheValidator.php b/lib/Doctrine/ORM/Cache/TimestampQueryCacheValidator.php index 196c4e1e0f2..a9cb6f07a7f 100644 --- a/lib/Doctrine/ORM/Cache/TimestampQueryCacheValidator.php +++ b/lib/Doctrine/ORM/Cache/TimestampQueryCacheValidator.php @@ -48,10 +48,7 @@ public function isValid(QueryCacheKey $key, QueryCacheEntry $entry) return $entry->time + $key->lifetime > microtime(true); } - /** - * @return bool - */ - private function regionUpdated(QueryCacheKey $key, QueryCacheEntry $entry) + private function regionUpdated(QueryCacheKey $key, QueryCacheEntry $entry): bool { if ($key->timestampKey === null) { return false; diff --git a/lib/Doctrine/ORM/EntityManager.php b/lib/Doctrine/ORM/EntityManager.php index 66216dda028..8f4ba65a9ae 100644 --- a/lib/Doctrine/ORM/EntityManager.php +++ b/lib/Doctrine/ORM/EntityManager.php @@ -799,11 +799,9 @@ public function getConfiguration() /** * Throws an exception if the EntityManager is closed or currently not active. * - * @return void - * * @throws ORMException If the EntityManager is closed. */ - private function errorIfClosed() + private function errorIfClosed(): void { if ($this->closed) { throw ORMException::entityManagerClosed(); diff --git a/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php b/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php index 0f08dec473f..e0ab9155423 100644 --- a/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php +++ b/lib/Doctrine/ORM/Event/PreUpdateEventArgs.php @@ -113,13 +113,9 @@ public function setNewValue($field, $value) /** * Asserts the field exists in changeset. * - * @param string $field - * - * @return void - * * @throws InvalidArgumentException */ - private function assertValidField($field) + private function assertValidField(string $field): void { if (! isset($this->entityChangeSet[$field])) { throw new InvalidArgumentException(sprintf( diff --git a/lib/Doctrine/ORM/Internal/CommitOrderCalculator.php b/lib/Doctrine/ORM/Internal/CommitOrderCalculator.php index 589a3a08776..a099d432466 100644 --- a/lib/Doctrine/ORM/Internal/CommitOrderCalculator.php +++ b/lib/Doctrine/ORM/Internal/CommitOrderCalculator.php @@ -146,10 +146,8 @@ public function sort() * Visit a given node definition for reordering. * * {@internal Highly performance-sensitive method.} - * - * @param stdClass $vertex */ - private function visit($vertex) + private function visit(stdClass $vertex): void { $vertex->state = self::IN_PROGRESS; diff --git a/lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php b/lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php index 80772e8e0d9..c5a6c050246 100644 --- a/lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php +++ b/lib/Doctrine/ORM/Internal/Hydration/ArrayHydrator.php @@ -261,13 +261,14 @@ protected function hydrateRowData(array $row, array &$result) * * @param mixed[] $coll The element. * @param bool|int $index Index of the element in the collection. - * @param string $dqlAlias * @param bool $oneToOne Whether it is a single-valued association or not. - * - * @return void */ - private function updateResultPointer(array &$coll, $index, $dqlAlias, $oneToOne) - { + private function updateResultPointer( + array &$coll, + $index, + string $dqlAlias, + bool $oneToOne + ): void { if ($coll === null) { unset($this->_resultPointers[$dqlAlias]); // Ticket #1228 diff --git a/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php b/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php index 69cd75a8f1e..c9f8ca44a49 100644 --- a/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php +++ b/lib/Doctrine/ORM/Internal/Hydration/ObjectHydrator.php @@ -171,15 +171,16 @@ protected function hydrateAllData() /** * Initializes a related collection. * - * @param object $entity The entity to which the collection belongs. - * @param ClassMetadata $class - * @param string $fieldName The name of the field on the entity that holds the collection. - * @param string $parentDqlAlias Alias of the parent fetch joining this collection. - * - * @return PersistentCollection + * @param object $entity The entity to which the collection belongs. + * @param string $fieldName The name of the field on the entity that holds the collection. + * @param string $parentDqlAlias Alias of the parent fetch joining this collection. */ - private function initRelatedCollection($entity, $class, $fieldName, $parentDqlAlias) - { + private function initRelatedCollection( + object $entity, + ClassMetadata $class, + string $fieldName, + string $parentDqlAlias + ): PersistentCollection { $oid = spl_object_hash($entity); $relation = $class->associationMappings[$fieldName]; $value = $class->reflFields[$fieldName]->getValue($entity); @@ -224,13 +225,11 @@ private function initRelatedCollection($entity, $class, $fieldName, $parentDqlAl * * @param string $dqlAlias The DQL alias of the entity's class. * - * @return object The entity. - * * @throws HydrationException * * @psalm-param array $data The instance data. */ - private function getEntity(array $data, $dqlAlias) + private function getEntity(array $data, string $dqlAlias): object { $className = $this->_rsm->aliasMap[$dqlAlias]; @@ -273,13 +272,11 @@ private function getEntity(array $data, $dqlAlias) } /** - * @param string $className - * * @return mixed * * @psalm-param array $data */ - private function getEntityFromIdentityMap($className, array $data) + private function getEntityFromIdentityMap(string $className, array $data) { // TODO: Abstract this code and UnitOfWork::createEntity() equivalent? $class = $this->_metadataCache[$className]; diff --git a/lib/Doctrine/ORM/Internal/HydrationCompleteHandler.php b/lib/Doctrine/ORM/Internal/HydrationCompleteHandler.php index 01185aa777e..7632ae3d123 100644 --- a/lib/Doctrine/ORM/Internal/HydrationCompleteHandler.php +++ b/lib/Doctrine/ORM/Internal/HydrationCompleteHandler.php @@ -55,7 +55,7 @@ public function __construct(ListenersInvoker $listenersInvoker, EntityManagerInt * * @param object $entity */ - public function deferPostLoadInvoking(ClassMetadata $class, $entity) + public function deferPostLoadInvoking(ClassMetadata $class, $entity): void { $invoke = $this->listenersInvoker->getSubscribedSystems($class, Events::postLoad); @@ -71,7 +71,7 @@ public function deferPostLoadInvoking(ClassMetadata $class, $entity) * * Method fires all deferred invocations of postLoad events */ - public function hydrationComplete() + public function hydrationComplete(): void { $toInvoke = $this->deferredPostLoadInvocations; $this->deferredPostLoadInvocations = []; diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php b/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php index cd821151319..9739d1573f9 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataFactory.php @@ -61,7 +61,7 @@ class ClassMetadataFactory extends AbstractClassMetadataFactory /** @var EntityManagerInterface|null */ private $em; - /** @var AbstractPlatform */ + /** @var AbstractPlatform|null */ private $targetPlatform; /** @var MappingDriver */ @@ -307,11 +307,9 @@ protected function newClassMetadataInstance($className) * Populates the discriminator value of the given metadata (if not set) by iterating over discriminator * map classes and looking for a fitting one. * - * @return void - * * @throws MappingException */ - private function resolveDiscriminatorValue(ClassMetadata $metadata) + private function resolveDiscriminatorValue(ClassMetadata $metadata): void { if ( $metadata->discriminatorValue @@ -356,7 +354,7 @@ private function resolveDiscriminatorValue(ClassMetadata $metadata) * * @throws MappingException */ - private function addDefaultDiscriminatorMap(ClassMetadata $class) + private function addDefaultDiscriminatorMap(ClassMetadata $class): void { $allClasses = $this->driver->getAllClassNames(); $fqcn = $class->getName(); @@ -384,12 +382,8 @@ private function addDefaultDiscriminatorMap(ClassMetadata $class) /** * Gets the lower-case short name of a class. - * - * @param string $className - * - * @return string */ - private function getShortName($className) + private function getShortName(string $className): string { if (strpos($className, '\\') === false) { return strtolower($className); @@ -402,10 +396,8 @@ private function getShortName($className) /** * Adds inherited fields to the subclass mapping. - * - * @return void */ - private function addInheritedFields(ClassMetadata $subClass, ClassMetadata $parentClass) + private function addInheritedFields(ClassMetadata $subClass, ClassMetadata $parentClass): void { foreach ($parentClass->fieldMappings as $mapping) { if (! isset($mapping['inherited']) && ! $parentClass->isMappedSuperclass) { @@ -427,11 +419,9 @@ private function addInheritedFields(ClassMetadata $subClass, ClassMetadata $pare /** * Adds inherited association mappings to the subclass mapping. * - * @return void - * * @throws MappingException */ - private function addInheritedRelations(ClassMetadata $subClass, ClassMetadata $parentClass) + private function addInheritedRelations(ClassMetadata $subClass, ClassMetadata $parentClass): void { foreach ($parentClass->associationMappings as $field => $mapping) { if ($parentClass->isMappedSuperclass) { @@ -455,7 +445,7 @@ private function addInheritedRelations(ClassMetadata $subClass, ClassMetadata $p } } - private function addInheritedEmbeddedClasses(ClassMetadata $subClass, ClassMetadata $parentClass) + private function addInheritedEmbeddedClasses(ClassMetadata $subClass, ClassMetadata $parentClass): void { foreach ($parentClass->embeddedClasses as $field => $embeddedClass) { if (! isset($embeddedClass['inherited']) && ! $parentClass->isMappedSuperclass) { @@ -477,8 +467,11 @@ private function addInheritedEmbeddedClasses(ClassMetadata $subClass, ClassMetad * @param ClassMetadata $parentClass Parent class to add nested embedded classes metadata to. * @param string $prefix Embedded classes' prefix to use for nested embedded classes field names. */ - private function addNestedEmbeddedClasses(ClassMetadata $subClass, ClassMetadata $parentClass, $prefix) - { + private function addNestedEmbeddedClasses( + ClassMetadata $subClass, + ClassMetadata $parentClass, + string $prefix + ): void { foreach ($subClass->embeddedClasses as $property => $embeddableClass) { if (isset($embeddableClass['inherited'])) { continue; @@ -502,10 +495,8 @@ private function addNestedEmbeddedClasses(ClassMetadata $subClass, ClassMetadata /** * Copy the table indices from the parent class superclass to the child class - * - * @return void */ - private function addInheritedIndexes(ClassMetadata $subClass, ClassMetadata $parentClass) + private function addInheritedIndexes(ClassMetadata $subClass, ClassMetadata $parentClass): void { if (! $parentClass->isMappedSuperclass) { return; @@ -526,10 +517,8 @@ private function addInheritedIndexes(ClassMetadata $subClass, ClassMetadata $par /** * Adds inherited named queries to the subclass mapping. - * - * @return void */ - private function addInheritedNamedQueries(ClassMetadata $subClass, ClassMetadata $parentClass) + private function addInheritedNamedQueries(ClassMetadata $subClass, ClassMetadata $parentClass): void { foreach ($parentClass->namedQueries as $name => $query) { if (! isset($subClass->namedQueries[$name])) { @@ -545,10 +534,8 @@ private function addInheritedNamedQueries(ClassMetadata $subClass, ClassMetadata /** * Adds inherited named native queries to the subclass mapping. - * - * @return void */ - private function addInheritedNamedNativeQueries(ClassMetadata $subClass, ClassMetadata $parentClass) + private function addInheritedNamedNativeQueries(ClassMetadata $subClass, ClassMetadata $parentClass): void { foreach ($parentClass->namedNativeQueries as $name => $query) { if (! isset($subClass->namedNativeQueries[$name])) { @@ -567,10 +554,8 @@ private function addInheritedNamedNativeQueries(ClassMetadata $subClass, ClassMe /** * Adds inherited sql result set mappings to the subclass mapping. - * - * @return void */ - private function addInheritedSqlResultSetMappings(ClassMetadata $subClass, ClassMetadata $parentClass) + private function addInheritedSqlResultSetMappings(ClassMetadata $subClass, ClassMetadata $parentClass): void { foreach ($parentClass->sqlResultSetMappings as $name => $mapping) { if (! isset($subClass->sqlResultSetMappings[$name])) { @@ -599,11 +584,9 @@ private function addInheritedSqlResultSetMappings(ClassMetadata $subClass, Class * Completes the ID generator mapping. If "auto" is specified we choose the generator * most appropriate for the targeted database platform. * - * @return void - * * @throws ORMException */ - private function completeIdGeneratorMapping(ClassMetadataInfo $class) + private function completeIdGeneratorMapping(ClassMetadataInfo $class): void { $idGenType = $class->generatorType; if ($idGenType === ClassMetadata::GENERATOR_TYPE_AUTO) { @@ -715,7 +698,7 @@ private function completeIdGeneratorMapping(ClassMetadataInfo $class) /** * Inherits the ID generator mapping from a parent class. */ - private function inheritIdGeneratorMapping(ClassMetadataInfo $class, ClassMetadataInfo $parent) + private function inheritIdGeneratorMapping(ClassMetadataInfo $class, ClassMetadataInfo $parent): void { if ($parent->isIdGeneratorSequence()) { $class->setSequenceGeneratorDefinition($parent->sequenceGeneratorDefinition); @@ -774,10 +757,7 @@ protected function isEntity(ClassMetadataInterface $class) return isset($class->isMappedSuperclass) && $class->isMappedSuperclass === false; } - /** - * @return Platforms\AbstractPlatform - */ - private function getTargetPlatform() + private function getTargetPlatform(): Platforms\AbstractPlatform { if (! $this->targetPlatform) { $this->targetPlatform = $this->em->getConnection()->getDatabasePlatform(); diff --git a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php index d9867f88dc5..6397406df85 100644 --- a/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php +++ b/lib/Doctrine/ORM/Mapping/ClassMetadataInfo.php @@ -2539,11 +2539,9 @@ public function setPrimaryTable(array $table) /** * Checks whether the given type identifies an inheritance type. * - * @param int $type - * - * @return bool TRUE if the given type identifies an inheritance type, FALSe otherwise. + * @return bool TRUE if the given type identifies an inheritance type, FALSE otherwise. */ - private function isInheritanceType($type) + private function isInheritanceType(int $type): bool { return $type === self::INHERITANCE_TYPE_NONE || $type === self::INHERITANCE_TYPE_SINGLE_TABLE || diff --git a/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php b/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php index 05f4e536820..9e5a00d5e0e 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php +++ b/lib/Doctrine/ORM/Mapping/Driver/AnnotationDriver.php @@ -598,14 +598,11 @@ private function loadRelationShipMapping( /** * Attempts to resolve the fetch mode. * - * @param string $className The class name. - * @param string $fetchMode The fetch mode. - * - * @return int The fetch mode as defined in ClassMetadata. - * * @throws MappingException If the fetch mode is not valid. + * + * @psalm-return \Doctrine\ORM\Mapping\ClassMetadata::FETCH_* The fetch mode as defined in ClassMetadata. */ - private function getFetchMode($className, $fetchMode) + private function getFetchMode(string $className, string $fetchMode): int { if (! defined('Doctrine\ORM\Mapping\ClassMetadata::FETCH_' . $fetchMode)) { throw MappingException::invalidFetchMode($className, $fetchMode); @@ -621,7 +618,7 @@ private function getFetchMode($className, $fetchMode) * * @psalm-return list */ - private function getMethodCallbacks(ReflectionMethod $method) + private function getMethodCallbacks(ReflectionMethod $method): array { $callbacks = []; $annotations = $this->reader->getMethodAnnotations($method); @@ -666,8 +663,6 @@ private function getMethodCallbacks(ReflectionMethod $method) /** * Parse the given JoinColumn as array * - * @return mixed[] - * * @psalm-return array{ * name: string, * unique: bool, @@ -677,7 +672,7 @@ private function getMethodCallbacks(ReflectionMethod $method) * referencedColumnName: string * } */ - private function joinColumnToArray(Mapping\JoinColumn $joinColumn) + private function joinColumnToArray(Mapping\JoinColumn $joinColumn): array { return [ 'name' => $joinColumn->name, @@ -692,10 +687,6 @@ private function joinColumnToArray(Mapping\JoinColumn $joinColumn) /** * Parse the given Column as array * - * @param string $fieldName - * - * @return mixed[] - * * @psalm-return array{ * fieldName: string, * type: mixed, @@ -709,7 +700,7 @@ private function joinColumnToArray(Mapping\JoinColumn $joinColumn) * columnDefinition?: string * } */ - private function columnToArray($fieldName, Mapping\Column $column) + private function columnToArray(string $fieldName, Mapping\Column $column): array { $mapping = [ 'fieldName' => $fieldName, diff --git a/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php b/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php index 190bfb2bbe4..c6a4433135d 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php +++ b/lib/Doctrine/ORM/Mapping/Driver/DatabaseDriver.php @@ -259,11 +259,9 @@ public function loadMetadataForClass($className, ClassMetadata $metadata) } /** - * @return void - * * @throws MappingException */ - private function reverseEngineerMappingFromDatabase() + private function reverseEngineerMappingFromDatabase(): void { if ($this->tables !== null) { return; @@ -316,7 +314,7 @@ private function reverseEngineerMappingFromDatabase() /** * Build indexes from a class metadata. */ - private function buildIndexes(ClassMetadataInfo $metadata) + private function buildIndexes(ClassMetadataInfo $metadata): void { $tableName = $metadata->table['name']; $indexes = $this->tables[$tableName]->getIndexes(); @@ -339,7 +337,7 @@ private function buildIndexes(ClassMetadataInfo $metadata) /** * Build field mapping from class metadata. */ - private function buildFieldMappings(ClassMetadataInfo $metadata) + private function buildFieldMappings(ClassMetadataInfo $metadata): void { $tableName = $metadata->table['name']; $columns = $this->tables[$tableName]->getColumns(); @@ -382,8 +380,6 @@ private function buildFieldMappings(ClassMetadataInfo $metadata) /** * Build field mapping from a schema column definition * - * @param string $tableName - * * @psalm-return array{ * fieldName: string, * columnName: string, @@ -400,7 +396,7 @@ private function buildFieldMappings(ClassMetadataInfo $metadata) * length?: int|null * } */ - private function buildFieldMapping($tableName, Column $column) + private function buildFieldMapping(string $tableName, Column $column): array { $fieldMapping = [ 'fieldName' => $this->getFieldNameForColumn($tableName, $column->getName(), false), @@ -501,7 +497,7 @@ private function buildToOneAssociationMappings(ClassMetadataInfo $metadata) * * @psalm-return array */ - private function getTableForeignKeys(Table $table) + private function getTableForeignKeys(Table $table): array { return $this->_sm->getDatabasePlatform()->supportsForeignKeyConstraints() ? $table->getForeignKeys() @@ -513,7 +509,7 @@ private function getTableForeignKeys(Table $table) * * @return string[] */ - private function getTablePrimaryKeys(Table $table) + private function getTablePrimaryKeys(Table $table): array { try { return $table->getPrimaryKey()->getColumns(); @@ -526,12 +522,8 @@ private function getTablePrimaryKeys(Table $table) /** * Returns the mapped class name for a table if it exists. Otherwise return "classified" version. - * - * @param string $tableName - * - * @return string */ - private function getClassNameForTable($tableName) + private function getClassNameForTable(string $tableName): string { if (isset($this->classNamesForTables[$tableName])) { return $this->namespace . $this->classNamesForTables[$tableName]; @@ -543,14 +535,13 @@ private function getClassNameForTable($tableName) /** * Return the mapped field name for a column, if it exists. Otherwise return camelized version. * - * @param string $tableName - * @param string $columnName - * @param bool $fk Whether the column is a foreignkey or not. - * - * @return string + * @param bool $fk Whether the column is a foreignkey or not. */ - private function getFieldNameForColumn($tableName, $columnName, $fk = false) - { + private function getFieldNameForColumn( + string $tableName, + string $columnName, + bool $fk = false + ): string { if (isset($this->fieldNamesForColumns[$tableName]) && isset($this->fieldNamesForColumns[$tableName][$columnName])) { return $this->fieldNamesForColumns[$tableName][$columnName]; } diff --git a/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php b/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php index 27be9209ebf..c8dfcdceb6f 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php +++ b/lib/Doctrine/ORM/Mapping/Driver/XmlDriver.php @@ -681,7 +681,7 @@ public function loadMetadataForClass($className, ClassMetadata $metadata) * * @return mixed[] The options array. */ - private function parseOptions(SimpleXMLElement $options) + private function parseOptions(SimpleXMLElement $options): array { $array = []; @@ -724,7 +724,7 @@ private function parseOptions(SimpleXMLElement $options) * columnDefinition?: string * } */ - private function joinColumnToArray(SimpleXMLElement $joinColumnElement) + private function joinColumnToArray(SimpleXMLElement $joinColumnElement): array { $joinColumn = [ 'name' => (string) $joinColumnElement['name'], @@ -753,8 +753,6 @@ private function joinColumnToArray(SimpleXMLElement $joinColumnElement) /** * Parses the given field as array. * - * @return mixed[] - * * @psalm-return array{ * fieldName: string, * type?: string, @@ -769,7 +767,7 @@ private function joinColumnToArray(SimpleXMLElement $joinColumnElement) * options?: array * } */ - private function columnToArray(SimpleXMLElement $fieldMapping) + private function columnToArray(SimpleXMLElement $fieldMapping): array { $mapping = [ 'fieldName' => (string) $fieldMapping['name'], @@ -821,11 +819,9 @@ private function columnToArray(SimpleXMLElement $fieldMapping) /** * Parse / Normalize the cache configuration * - * @return mixed[] - * * @psalm-return array{usage: mixed, region: string|null} */ - private function cacheToArray(SimpleXMLElement $cacheMapping) + private function cacheToArray(SimpleXMLElement $cacheMapping): array { $region = isset($cacheMapping['region']) ? (string) $cacheMapping['region'] : null; $usage = isset($cacheMapping['usage']) ? strtoupper($cacheMapping['usage']) : null; @@ -853,7 +849,7 @@ private function cacheToArray(SimpleXMLElement $cacheMapping) * * @psalm-return list */ - private function getCascadeMappings(SimpleXMLElement $cascadeElement) + private function getCascadeMappings(SimpleXMLElement $cascadeElement): array { $cascades = []; foreach ($cascadeElement->children() as $action) { diff --git a/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php b/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php index 1f76be2031d..d0433f1721a 100644 --- a/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php +++ b/lib/Doctrine/ORM/Mapping/Driver/YamlDriver.php @@ -837,7 +837,7 @@ private function columnToArray(string $fieldName, ?array $column): array * @psalm-param array{usage: mixed, region: (string|null)} $cacheMapping * @psalm-return array{usage: mixed, region: (string|null)} */ - private function cacheToArray($cacheMapping) + private function cacheToArray(array $cacheMapping): array { $region = isset($cacheMapping['region']) ? (string) $cacheMapping['region'] : null; $usage = isset($cacheMapping['usage']) ? strtoupper($cacheMapping['usage']) : null; diff --git a/lib/Doctrine/ORM/Mapping/Reflection/ReflectionPropertiesGetter.php b/lib/Doctrine/ORM/Mapping/Reflection/ReflectionPropertiesGetter.php index 0d5be731368..7fc12cafdf1 100644 --- a/lib/Doctrine/ORM/Mapping/Reflection/ReflectionPropertiesGetter.php +++ b/lib/Doctrine/ORM/Mapping/Reflection/ReflectionPropertiesGetter.php @@ -56,7 +56,7 @@ public function __construct(ReflectionService $reflectionService) * * @psalm-param class-string $className */ - public function getProperties($className) + public function getProperties($className): array { if (isset($this->properties[$className])) { return $this->properties[$className]; @@ -76,13 +76,11 @@ public function getProperties($className) } /** - * @param string $className - * * @return ReflectionClass[] * * @psalm-return list */ - private function getHierarchyClasses($className): array + private function getHierarchyClasses(string $className): array { $classes = []; $parentClassName = $className; @@ -124,18 +122,12 @@ private function getClassProperties(ReflectionClass $reflectionClass): array ); } - /** - * @return bool - */ - private function isInstanceProperty(ReflectionProperty $reflectionProperty) + private function isInstanceProperty(ReflectionProperty $reflectionProperty): bool { return ! $reflectionProperty->isStatic(); } - /** - * @return ReflectionProperty|null - */ - private function getAccessibleProperty(ReflectionProperty $property) + private function getAccessibleProperty(ReflectionProperty $property): ?ReflectionProperty { return $this->reflectionService->getAccessibleProperty( $property->getDeclaringClass()->getName(), @@ -143,10 +135,7 @@ private function getAccessibleProperty(ReflectionProperty $property) ); } - /** - * @return string - */ - private function getLogicalName(ReflectionProperty $property) + private function getLogicalName(ReflectionProperty $property): string { $propertyName = $property->getName(); diff --git a/lib/Doctrine/ORM/NativeQuery.php b/lib/Doctrine/ORM/NativeQuery.php index d39f4a6890a..546eda7e3e7 100644 --- a/lib/Doctrine/ORM/NativeQuery.php +++ b/lib/Doctrine/ORM/NativeQuery.php @@ -60,7 +60,7 @@ public function getSQL() } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function _doExecute() { diff --git a/lib/Doctrine/ORM/PersistentCollection.php b/lib/Doctrine/ORM/PersistentCollection.php index de24b0d36de..4387b0c6f8f 100644 --- a/lib/Doctrine/ORM/PersistentCollection.php +++ b/lib/Doctrine/ORM/PersistentCollection.php @@ -64,7 +64,7 @@ final class PersistentCollection extends AbstractLazyCollection implements Selec /** * The entity that owns this collection. * - * @var object + * @var object|null */ private $owner; @@ -129,11 +129,9 @@ public function __construct(EntityManagerInterface $em, $class, Collection $coll * * @param object $entity * - * @return void - * * @psalm-param array $assoc */ - public function setOwner($entity, array $assoc) + public function setOwner($entity, array $assoc): void { $this->owner = $entity; $this->association = $assoc; @@ -143,18 +141,13 @@ public function setOwner($entity, array $assoc) /** * INTERNAL: * Gets the collection owner. - * - * @return object */ - public function getOwner() + public function getOwner(): ?object { return $this->owner; } - /** - * @return Mapping\ClassMetadata - */ - public function getTypeClass() + public function getTypeClass(): Mapping\ClassMetadata { return $this->typeClass; } @@ -165,10 +158,8 @@ public function getTypeClass() * complete bidirectional associations in the case of a one-to-many association. * * @param mixed $element The element to add. - * - * @return void */ - public function hydrateAdd($element) + public function hydrateAdd($element): void { $this->collection->add($element); @@ -195,10 +186,8 @@ public function hydrateAdd($element) * * @param mixed $key The key to set. * @param mixed $element The element to set. - * - * @return void */ - public function hydrateSet($key, $element) + public function hydrateSet($key, $element): void { $this->collection->set($key, $element); @@ -216,10 +205,8 @@ public function hydrateSet($key, $element) /** * Initializes the collection by loading its contents from the database * if the collection is not yet initialized. - * - * @return void */ - public function initialize() + public function initialize(): void { if ($this->initialized || ! $this->association) { return; @@ -233,10 +220,8 @@ public function initialize() /** * INTERNAL: * Tells this collection to take a snapshot of its current state. - * - * @return void */ - public function takeSnapshot() + public function takeSnapshot(): void { $this->snapshot = $this->collection->toArray(); $this->isDirty = false; @@ -248,7 +233,7 @@ public function takeSnapshot() * * @psalm-return array The last snapshot of the elements. */ - public function getSnapshot() + public function getSnapshot(): array { return $this->snapshot; } @@ -259,7 +244,7 @@ public function getSnapshot() * * @return mixed[] */ - public function getDeleteDiff() + public function getDeleteDiff(): array { return array_udiff_assoc( $this->snapshot, @@ -276,7 +261,7 @@ static function ($a, $b): int { * * @return mixed[] */ - public function getInsertDiff() + public function getInsertDiff(): array { return array_udiff_assoc( $this->collection->toArray(), @@ -292,17 +277,15 @@ static function ($a, $b): int { * * @psalm-return array */ - public function getMapping() + public function getMapping(): array { return $this->association; } /** * Marks this collection as changed/dirty. - * - * @return void */ - private function changed() + private function changed(): void { if ($this->isDirty) { return; @@ -327,7 +310,7 @@ private function changed() * * @return bool TRUE if the collection is dirty, FALSE otherwise. */ - public function isDirty() + public function isDirty(): bool { return $this->isDirty; } @@ -336,10 +319,8 @@ public function isDirty() * Sets a boolean flag, indicating whether this collection is dirty. * * @param bool $dirty Whether the collection should be marked dirty or not. - * - * @return void */ - public function setDirty($dirty) + public function setDirty($dirty): void { $this->isDirty = $dirty; } @@ -348,20 +329,16 @@ public function setDirty($dirty) * Sets the initialized flag of the collection, forcing it into that state. * * @param bool $bool - * - * @return void */ - public function setInitialized($bool) + public function setInitialized($bool): void { $this->initialized = $bool; } /** * {@inheritdoc} - * - * @return object */ - public function remove($key) + public function remove($key): object { // TODO: If the keys are persistent as well (not yet implemented) // and the collection is not initialized and orphanRemoval is @@ -390,7 +367,7 @@ public function remove($key) /** * {@inheritdoc} */ - public function removeElement($element) + public function removeElement($element): bool { $removed = parent::removeElement($element); @@ -415,7 +392,7 @@ public function removeElement($element) /** * {@inheritdoc} */ - public function containsKey($key) + public function containsKey($key): bool { if ( ! $this->initialized && $this->association['fetch'] === ClassMetadata::FETCH_EXTRA_LAZY @@ -432,7 +409,7 @@ public function containsKey($key) /** * {@inheritdoc} */ - public function contains($element) + public function contains($element): bool { if (! $this->initialized && $this->association['fetch'] === ClassMetadata::FETCH_EXTRA_LAZY) { $persister = $this->em->getUnitOfWork()->getCollectionPersister($this->association); @@ -463,10 +440,7 @@ public function get($key) return parent::get($key); } - /** - * {@inheritdoc} - */ - public function count() + public function count(): int { if (! $this->initialized && $this->association !== null && $this->association['fetch'] === ClassMetadata::FETCH_EXTRA_LAZY) { $persister = $this->em->getUnitOfWork()->getCollectionPersister($this->association); @@ -480,7 +454,7 @@ public function count() /** * {@inheritdoc} */ - public function set($key, $value) + public function set($key, $value): void { parent::set($key, $value); @@ -494,7 +468,7 @@ public function set($key, $value) /** * {@inheritdoc} */ - public function add($value) + public function add($value): bool { $this->collection->add($value); @@ -512,7 +486,7 @@ public function add($value) /** * {@inheritdoc} */ - public function offsetExists($offset) + public function offsetExists($offset): bool { return $this->containsKey($offset); } @@ -528,7 +502,7 @@ public function offsetGet($offset) /** * {@inheritdoc} */ - public function offsetSet($offset, $value) + public function offsetSet($offset, $value): void { if (! isset($offset)) { $this->add($value); @@ -541,26 +515,18 @@ public function offsetSet($offset, $value) /** * {@inheritdoc} - * - * @return object */ - public function offsetUnset($offset) + public function offsetUnset($offset): object { return $this->remove($offset); } - /** - * {@inheritdoc} - */ - public function isEmpty() + public function isEmpty(): bool { return $this->collection->isEmpty() && $this->count() === 0; } - /** - * {@inheritdoc} - */ - public function clear() + public function clear(): void { if ($this->initialized && $this->isEmpty()) { $this->collection->clear(); @@ -625,7 +591,7 @@ public function __sleep(): array * * @psalm-return array */ - public function slice($offset, $length = null) + public function slice($offset, $length = null): array { if (! $this->initialized && ! $this->isDirty && $this->association['fetch'] === ClassMetadata::FETCH_EXTRA_LAZY) { $persister = $this->em->getUnitOfWork()->getCollectionPersister($this->association); @@ -646,8 +612,6 @@ public function slice($offset, $length = null) * 3. Snapshot leads to invalid diffs being generated. * 4. Lazy loading grabs entities from old owner object. * 5. New collection is connected to old owner and leads to duplicate keys. - * - * @return void */ public function __clone() { @@ -671,7 +635,7 @@ public function __clone() * * @throws RuntimeException */ - public function matching(Criteria $criteria) + public function matching(Criteria $criteria): Collection { if ($this->isDirty) { $this->initialize(); @@ -708,15 +672,12 @@ public function matching(Criteria $criteria) * * @return Collection */ - public function unwrap() + public function unwrap(): Collection { return $this->collection; } - /** - * {@inheritdoc} - */ - protected function doInitialize() + protected function doInitialize(): void { // Has NEW objects added through add(). Remember them. $newlyAddedDirtyObjects = []; diff --git a/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php b/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php index 7f38f934640..1f72262e70e 100644 --- a/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php +++ b/lib/Doctrine/ORM/Persisters/Collection/ManyToManyPersister.php @@ -526,14 +526,14 @@ protected function getInsertRowSQLParameters(PersistentCollection $collection, $ * Collects the parameters for inserting/deleting on the join table in the order * of the join table columns as specified in ManyToManyMapping#joinTableColumns. * - * @param object $element - * * @return mixed[] * * @psalm-return list */ - private function collectJoinTableColumnParameters(PersistentCollection $collection, $element) - { + private function collectJoinTableColumnParameters( + PersistentCollection $collection, + object $element + ): array { $params = []; $mapping = $collection->getMapping(); $isComposite = count($mapping['joinTableColumns']) > 2; @@ -569,8 +569,7 @@ private function collectJoinTableColumnParameters(PersistentCollection $collecti } /** - * @param string $key - * @param bool $addFilters Whether the filter SQL should be included or not. + * @param bool $addFilters Whether the filter SQL should be included or not. * * @return mixed[] ordered vector: * - quoted join table name @@ -580,8 +579,11 @@ private function collectJoinTableColumnParameters(PersistentCollection $collecti * * @psalm-return array{0: string, 1: list, 2: list, 3: list} */ - private function getJoinTableRestrictionsWithKey(PersistentCollection $collection, $key, $addFilters) - { + private function getJoinTableRestrictionsWithKey( + PersistentCollection $collection, + string $key, + bool $addFilters + ): array { $filterMapping = $collection->getMapping(); $mapping = $filterMapping; $indexBy = $mapping['indexBy']; @@ -655,8 +657,7 @@ private function getJoinTableRestrictionsWithKey(PersistentCollection $collectio } /** - * @param object $element - * @param bool $addFilters Whether the filter SQL should be included or not. + * @param bool $addFilters Whether the filter SQL should be included or not. * * @return mixed[] ordered vector: * - quoted join table name @@ -666,8 +667,11 @@ private function getJoinTableRestrictionsWithKey(PersistentCollection $collectio * * @psalm-return array{0: string, 1: list, 2: list, 3: list} */ - private function getJoinTableRestrictions(PersistentCollection $collection, $element, $addFilters) - { + private function getJoinTableRestrictions( + PersistentCollection $collection, + object $element, + bool $addFilters + ): array { $filterMapping = $collection->getMapping(); $mapping = $filterMapping; @@ -727,7 +731,7 @@ private function getJoinTableRestrictions(PersistentCollection $collection, $ele * * @return mixed[][] */ - private function expandCriteriaParameters(Criteria $criteria) + private function expandCriteriaParameters(Criteria $criteria): array { $expression = $criteria->getWhereExpression(); @@ -744,10 +748,7 @@ private function expandCriteriaParameters(Criteria $criteria) return $types; } - /** - * @return string - */ - private function getOrderingSql(Criteria $criteria, ClassMetadata $targetClass) + private function getOrderingSql(Criteria $criteria, ClassMetadata $targetClass): string { $orderings = $criteria->getOrderings(); if ($orderings) { @@ -768,11 +769,9 @@ private function getOrderingSql(Criteria $criteria, ClassMetadata $targetClass) } /** - * @return string - * * @throws DBALException */ - private function getLimitSql(Criteria $criteria) + private function getLimitSql(Criteria $criteria): string { $limit = $criteria->getMaxResults(); $offset = $criteria->getFirstResult(); diff --git a/lib/Doctrine/ORM/Persisters/Collection/OneToManyPersister.php b/lib/Doctrine/ORM/Persisters/Collection/OneToManyPersister.php index f872cc1c6d4..36efcc6999a 100644 --- a/lib/Doctrine/ORM/Persisters/Collection/OneToManyPersister.php +++ b/lib/Doctrine/ORM/Persisters/Collection/OneToManyPersister.php @@ -180,11 +180,9 @@ public function loadCriteria(PersistentCollection $collection, Criteria $criteri } /** - * @return int - * * @throws DBALException */ - private function deleteEntityCollection(PersistentCollection $collection) + private function deleteEntityCollection(PersistentCollection $collection): int { $mapping = $collection->getMapping(); $identifier = $this->uow->getEntityIdentifier($collection->getOwner()); @@ -210,11 +208,9 @@ private function deleteEntityCollection(PersistentCollection $collection) * * Thanks Steve Ebersole (Hibernate) for idea on how to tackle reliably this scenario, we owe him a beer! =) * - * @return int - * * @throws DBALException */ - private function deleteJoinedEntityCollection(PersistentCollection $collection) + private function deleteJoinedEntityCollection(PersistentCollection $collection): int { $mapping = $collection->getMapping(); $sourceClass = $this->em->getClassMetadata($mapping['sourceEntity']); diff --git a/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php b/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php index 9e17c7e214f..f0dbfaf38f1 100644 --- a/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php +++ b/lib/Doctrine/ORM/Persisters/Entity/BasicEntityPersister.php @@ -24,9 +24,9 @@ use Doctrine\Common\Collections\Expr\Comparison; use Doctrine\Common\Util\ClassUtils; use Doctrine\DBAL\Connection; +use Doctrine\DBAL\Driver\Statement as DriverStatement; use Doctrine\DBAL\LockMode; use Doctrine\DBAL\Platforms\AbstractPlatform; -use Doctrine\DBAL\Statement; use Doctrine\DBAL\Types\Type; use Doctrine\ORM\EntityManagerInterface; use Doctrine\ORM\Mapping\ClassMetadata; @@ -415,13 +415,15 @@ public function update($entity) * @param mixed[] $updateData The map of columns to update (column => value). * @param bool $versioned Whether the UPDATE should be versioned. * - * @return void - * * @throws ORMException * @throws OptimisticLockException */ - final protected function updateTable($entity, $quotedTableName, array $updateData, $versioned = false) - { + final protected function updateTable( + $entity, + $quotedTableName, + array $updateData, + $versioned = false + ): void { $set = []; $types = []; $params = []; @@ -922,12 +924,11 @@ public function getManyToManyCollection(array $assoc, $sourceEntity, $offset = n /** * Loads an array of entities from a given DBAL statement. * - * @param mixed[] $assoc - * @param Statement $stmt + * @param mixed[] $assoc * * @return mixed[] */ - private function loadArrayFromStatement($assoc, $stmt) + private function loadArrayFromStatement(array $assoc, DriverStatement $stmt): array { $rsm = $this->currentPersisterContext->rsm; $hints = [UnitOfWork::HINT_DEFEREAGERLOAD => true]; @@ -943,14 +944,15 @@ private function loadArrayFromStatement($assoc, $stmt) /** * Hydrates a collection from a given DBAL statement. * - * @param mixed[] $assoc - * @param Statement $stmt - * @param PersistentCollection $coll + * @param mixed[] $assoc * * @return mixed[] */ - private function loadCollectionFromStatement($assoc, $stmt, $coll) - { + private function loadCollectionFromStatement( + array $assoc, + DriverStatement $stmt, + PersistentCollection $coll + ): array { $rsm = $this->currentPersisterContext->rsm; $hints = [ UnitOfWork::HINT_DEFEREAGERLOAD => true, @@ -976,7 +978,7 @@ public function loadManyToManyCollection(array $assoc, $sourceEntity, Persistent } /** - * @return \Doctrine\DBAL\Driver\Statement + * @return DriverStatement * * @throws MappingException * @@ -1660,8 +1662,6 @@ public function getSelectConditionStatementSQL($field, $value, $assoc = null, $c /** * Builds the left-hand-side of a where condition statement. * - * @param string $field - * * @return string[] * * @throws ORMException @@ -1669,8 +1669,10 @@ public function getSelectConditionStatementSQL($field, $value, $assoc = null, $c * @psalm-param array|null $assoc * @psalm-return list */ - private function getSelectConditionStatementColumnSQL($field, $assoc = null) - { + private function getSelectConditionStatementColumnSQL( + string $field, + ?array $assoc = null + ): array { if (isset($this->class->fieldMappings[$field])) { $className = $this->class->fieldMappings[$field]['inherited'] ?? $this->class->name; @@ -1770,16 +1772,14 @@ public function loadOneToManyCollection(array $assoc, $sourceEntity, PersistentC /** * Builds criteria and execute SQL statement to fetch the one to many entities from. * - * @param object $sourceEntity - * @param int|null $offset - * @param int|null $limit - * - * @return Statement - * * @psalm-param array $assoc */ - private function getOneToManyStatement(array $assoc, $sourceEntity, $offset = null, $limit = null) - { + private function getOneToManyStatement( + array $assoc, + object $sourceEntity, + ?int $offset = null, + ?int $limit = null + ): DriverStatement { $this->switchPersisterContext($offset, $limit); $criteria = []; @@ -1858,7 +1858,7 @@ public function expandParameters($criteria) * * @psalm-return array{0: array, 1: list} */ - private function expandToManyParameters($criteria) + private function expandToManyParameters(array $criteria): array { $params = []; $types = []; @@ -1878,8 +1878,7 @@ private function expandToManyParameters($criteria) /** * Infers field types to be used by parameter type casting. * - * @param string $field - * @param mixed $value + * @param mixed $value * * @return int[]|null[]|string[] * @@ -1887,7 +1886,7 @@ private function expandToManyParameters($criteria) * * @psalm-return list<(int|string|null)> */ - private function getTypes($field, $value, ClassMetadata $class) + private function getTypes(string $field, $value, ClassMetadata $class): array { $types = []; @@ -1938,7 +1937,7 @@ private function getTypes($field, $value, ClassMetadata $class) * * @return array{mixed} */ - private function getValues($value) + private function getValues($value): array { if (is_array($value)) { $newValue = []; diff --git a/lib/Doctrine/ORM/Persisters/Entity/JoinedSubclassPersister.php b/lib/Doctrine/ORM/Persisters/Entity/JoinedSubclassPersister.php index 0ad5bab07b3..1f5026bb669 100644 --- a/lib/Doctrine/ORM/Persisters/Entity/JoinedSubclassPersister.php +++ b/lib/Doctrine/ORM/Persisters/Entity/JoinedSubclassPersister.php @@ -68,10 +68,8 @@ protected function getDiscriminatorColumnTableName() /** * This function finds the ClassMetadata instance in an inheritance hierarchy * that is responsible for enabling versioning. - * - * @return ClassMetadata */ - private function getVersionedClassMetadata() + private function getVersionedClassMetadata(): ClassMetadata { if (isset($this->class->fieldMappings[$this->class->versionField]['inherited'])) { $definingClassName = $this->class->fieldMappings[$this->class->versionField]['inherited']; @@ -576,12 +574,7 @@ protected function assignDefaultVersionValue($entity, array $id) $this->class->setFieldValue($entity, $this->class->versionField, $value); } - /** - * @param string $baseTableAlias - * - * @return string - */ - private function getJoinSql($baseTableAlias) + private function getJoinSql(string $baseTableAlias): string { $joinSql = ''; $identifierColumn = $this->class->getIdentifierColumnNames(); diff --git a/lib/Doctrine/ORM/Proxy/ProxyFactory.php b/lib/Doctrine/ORM/Proxy/ProxyFactory.php index b7aa3943992..9f7e38ab263 100644 --- a/lib/Doctrine/ORM/Proxy/ProxyFactory.php +++ b/lib/Doctrine/ORM/Proxy/ProxyFactory.php @@ -109,17 +109,15 @@ protected function createProxyDefinition($className) /** * Creates a closure capable of initializing a proxy * - * @return Closure - * * @throws EntityNotFoundException * * @psalm-return Closure(BaseProxy ): void */ - private function createInitializer(ClassMetadata $classMetadata, EntityPersister $entityPersister) + private function createInitializer(ClassMetadata $classMetadata, EntityPersister $entityPersister): Closure { $wakeupProxy = $classMetadata->getReflectionClass()->hasMethod('__wakeup'); - return function (BaseProxy $proxy) use ($entityPersister, $classMetadata, $wakeupProxy) { + return function (BaseProxy $proxy) use ($entityPersister, $classMetadata, $wakeupProxy): void { $initializer = $proxy->__getInitializer(); $cloner = $proxy->__getCloner(); @@ -162,15 +160,13 @@ private function createInitializer(ClassMetadata $classMetadata, EntityPersister /** * Creates a closure capable of finalizing state a cloned proxy * - * @return Closure - * * @throws EntityNotFoundException * * @psalm-return Closure(BaseProxy ): void */ - private function createCloner(ClassMetadata $classMetadata, EntityPersister $entityPersister) + private function createCloner(ClassMetadata $classMetadata, EntityPersister $entityPersister): Closure { - return function (BaseProxy $proxy) use ($entityPersister, $classMetadata) { + return function (BaseProxy $proxy) use ($entityPersister, $classMetadata): void { if ($proxy->__isInitialized()) { return; } diff --git a/lib/Doctrine/ORM/Query.php b/lib/Doctrine/ORM/Query.php index aefe10e5966..a2928b3e6b9 100644 --- a/lib/Doctrine/ORM/Query.php +++ b/lib/Doctrine/ORM/Query.php @@ -228,10 +228,8 @@ protected function getResultSetMapping() * Parses the DQL query, if necessary, and stores the parser result. * * Note: Populates $this->_parserResult as a side-effect. - * - * @return ParserResult */ - private function parse() + private function parse(): ParserResult { $types = []; @@ -279,7 +277,7 @@ private function parse() } /** - * {@inheritdoc} + * {@inheritDoc} */ protected function _doExecute() { @@ -335,7 +333,7 @@ private function evictResultSetCache( array $sqlParams, array $types, array $connectionParams - ) { + ): void { if ($this->_queryCacheProfile === null || ! $this->getExpireResultCache()) { return; } @@ -353,7 +351,7 @@ private function evictResultSetCache( /** * Evict entity cache region */ - private function evictEntityCacheRegion() + private function evictEntityCacheRegion(): void { $AST = $this->getAST(); @@ -494,7 +492,7 @@ public function useQueryCache($bool): self * @return Cache|null The cache driver used for query caching or NULL, if * this Query does not use query caching. */ - public function getQueryCacheDriver() + public function getQueryCacheDriver(): ?Cache { if ($this->queryCache) { return $this->queryCache; @@ -523,10 +521,8 @@ public function setQueryCacheLifetime($timeToLive): self /** * Retrieves the lifetime of resultset cache. - * - * @return int */ - public function getQueryCacheLifetime() + public function getQueryCacheLifetime(): int { return $this->queryCacheTTL; } @@ -547,10 +543,8 @@ public function expireQueryCache($expire = true): self /** * Retrieves if the query cache is active or not. - * - * @return bool */ - public function getExpireQueryCache() + public function getExpireQueryCache(): bool { return $this->expireQueryCache; } @@ -558,7 +552,7 @@ public function getExpireQueryCache() /** * @override */ - public function free() + public function free(): void { parent::free(); @@ -583,10 +577,8 @@ public function setDQL($dqlQuery): self /** * Returns the DQL query that is represented by this query object. - * - * @return string|null */ - public function getDQL() + public function getDQL(): ?string { return $this->dql; } @@ -601,7 +593,7 @@ public function getDQL() * * @return int The query state. */ - public function getState() + public function getState(): int { return $this->_state; } @@ -610,10 +602,8 @@ public function getState() * Method to check if an arbitrary piece of DQL exists * * @param string $dql Arbitrary piece of DQL to check for. - * - * @return bool */ - public function contains($dql) + public function contains($dql): bool { return stripos($this->getDQL(), $dql) !== false; } @@ -639,7 +629,7 @@ public function setFirstResult($firstResult): self * * @return int|null The position of the first result. */ - public function getFirstResult() + public function getFirstResult(): ?int { return $this->firstResult; } @@ -665,7 +655,7 @@ public function setMaxResults($maxResults): self * * @return int|null Maximum number of results. */ - public function getMaxResults() + public function getMaxResults(): ?int { return $this->maxResults; } @@ -679,11 +669,9 @@ public function getMaxResults() * @param ArrayCollection|mixed[]|null $parameters The query parameters. * @param string|int $hydrationMode The hydration mode to use. * - * @return IterableResult - * * @psalm-param ArrayCollection|array|null $parameters */ - public function iterate($parameters = null, $hydrationMode = self::HYDRATE_OBJECT) + public function iterate($parameters = null, $hydrationMode = self::HYDRATE_OBJECT): IterableResult { $this->setHint(self::HINT_INTERNAL_ITERATION, true); @@ -701,7 +689,7 @@ public function toIterable(iterable $parameters = [], $hydrationMode = self::HYD /** * {@inheritdoc} */ - public function setHint($name, $value) + public function setHint($name, $value): self { $this->_state = self::STATE_DIRTY; @@ -711,7 +699,7 @@ public function setHint($name, $value) /** * {@inheritdoc} */ - public function setHydrationMode($hydrationMode) + public function setHydrationMode($hydrationMode): self { $this->_state = self::STATE_DIRTY; @@ -745,7 +733,7 @@ public function setLockMode($lockMode): self * * @return int|null The current lock mode of this query or NULL if no specific lock mode is set. */ - public function getLockMode() + public function getLockMode(): ?int { $lockMode = $this->getHint(self::HINT_LOCK_MODE); @@ -777,18 +765,13 @@ protected function getQueryCacheId(): string ); } - /** - * {@inheritdoc} - */ - protected function getHash() + protected function getHash(): string { return sha1(parent::getHash() . '-' . $this->firstResult . '-' . $this->maxResults); } /** * Cleanup Query resource when clone is called. - * - * @return void */ public function __clone() { diff --git a/lib/Doctrine/ORM/Query/AST/Functions/TrimFunction.php b/lib/Doctrine/ORM/Query/AST/Functions/TrimFunction.php index b7e07099036..e41122b37c7 100644 --- a/lib/Doctrine/ORM/Query/AST/Functions/TrimFunction.php +++ b/lib/Doctrine/ORM/Query/AST/Functions/TrimFunction.php @@ -93,9 +93,9 @@ public function parse(Parser $parser) } /** - * @return int + * @psalm-return AbstractPlatform::TRIM_* */ - private function getTrimMode() + private function getTrimMode(): int { if ($this->leading) { return AbstractPlatform::TRIM_LEADING; @@ -112,10 +112,7 @@ private function getTrimMode() return AbstractPlatform::TRIM_UNSPECIFIED; } - /** - * @return void - */ - private function parseTrimMode(Parser $parser) + private function parseTrimMode(Parser $parser): void { $lexer = $parser->getLexer(); $value = $lexer->lookahead['value']; diff --git a/lib/Doctrine/ORM/Query/Expr/Composite.php b/lib/Doctrine/ORM/Query/Expr/Composite.php index f65c6975ccb..f75aa8d4654 100644 --- a/lib/Doctrine/ORM/Query/Expr/Composite.php +++ b/lib/Doctrine/ORM/Query/Expr/Composite.php @@ -51,10 +51,8 @@ public function __toString() /** * @param string|object $part - * - * @return string */ - private function processQueryPart($part) + private function processQueryPart($part): string { $queryPart = (string) $part; diff --git a/lib/Doctrine/ORM/Query/Filter/SQLFilter.php b/lib/Doctrine/ORM/Query/Filter/SQLFilter.php index f9cb0a59a40..9cd80d05482 100644 --- a/lib/Doctrine/ORM/Query/Filter/SQLFilter.php +++ b/lib/Doctrine/ORM/Query/Filter/SQLFilter.php @@ -135,10 +135,8 @@ final public function __toString() /** * Returns the database connection used by the entity manager - * - * @return Connection */ - final protected function getConnection() + final protected function getConnection(): Connection { return $this->em->getConnection(); } diff --git a/lib/Doctrine/ORM/Query/Parser.php b/lib/Doctrine/ORM/Query/Parser.php index 27e1e127149..cb761fdcf27 100644 --- a/lib/Doctrine/ORM/Query/Parser.php +++ b/lib/Doctrine/ORM/Query/Parser.php @@ -464,10 +464,8 @@ public function parse() * as the hydration process relies on that order for proper operation. * * @param AST\SelectStatement|AST\DeleteStatement|AST\UpdateStatement $AST - * - * @return void */ - private function fixIdentificationVariableOrder($AST) + private function fixIdentificationVariableOrder(Node $AST): void { if (count($this->identVariableExpressions) <= 1) { return; @@ -559,7 +557,7 @@ public function semanticalError($message = '', $token = null) * * @psalm-return array| null */ - private function peekBeyondClosingParenthesis(bool $resetPeek = true) + private function peekBeyondClosingParenthesis(bool $resetPeek = true): ?array { $token = $this->lexer->peek(); $numUnmatched = 1; @@ -591,9 +589,9 @@ private function peekBeyondClosingParenthesis(bool $resetPeek = true) /** * Checks if the given token indicates a mathematical operator. * - * @psalm-param array $token + * @psalm-param array|null $token */ - private function isMathOperator($token): bool + private function isMathOperator(?array $token): bool { return $token !== null && in_array($token['type'], [Lexer::T_PLUS, Lexer::T_MINUS, Lexer::T_DIVIDE, Lexer::T_MULTIPLY]); } @@ -1043,7 +1041,7 @@ public function AbstractSchemaName() * * @throws QueryException if the name does not exist. */ - private function validateAbstractSchemaName($schemaName) + private function validateAbstractSchemaName(string $schemaName): void { if (! (class_exists($schemaName, true) || interface_exists($schemaName, true))) { $this->semanticalError( @@ -3488,10 +3486,8 @@ public function FunctionDeclaration() /** * Helper function for FunctionDeclaration grammar rule. - * - * @return FunctionNode */ - private function CustomFunctionDeclaration() + private function CustomFunctionDeclaration(): ?FunctionNode { $token = $this->lexer->lookahead; $funcName = strtolower($token['value']); diff --git a/lib/Doctrine/ORM/Query/ResultSetMappingBuilder.php b/lib/Doctrine/ORM/Query/ResultSetMappingBuilder.php index 288ada32ec7..31063e7dac7 100644 --- a/lib/Doctrine/ORM/Query/ResultSetMappingBuilder.php +++ b/lib/Doctrine/ORM/Query/ResultSetMappingBuilder.php @@ -197,14 +197,10 @@ private function isInheritanceSupported(ClassMetadataInfo $classMetadata): bool /** * Gets column alias for a given column. * - * @param string $columnName - * @param int $mode - * - * @return string - * + * @psalm-param self::COLUMN_RENAMING_* $mode * @psalm-param array $customRenameColumns */ - private function getColumnAlias($columnName, $mode, array $customRenameColumns) + private function getColumnAlias(string $columnName, int $mode, array $customRenameColumns): string { switch ($mode) { case self::COLUMN_RENAMING_INCREMENT: @@ -215,6 +211,12 @@ private function getColumnAlias($columnName, $mode, array $customRenameColumns) case self::COLUMN_RENAMING_NONE: return $columnName; + + default: + throw new InvalidArgumentException(sprintf( + '%d is not a valid value for $mode', + $mode + )); } } @@ -223,15 +225,13 @@ private function getColumnAlias($columnName, $mode, array $customRenameColumns) * * This depends on the renaming mode selected by the user. * - * @param string $className - * @param int $mode - * * @return string[] * + * @psalm-param self::COLUMN_RENAMING_* $mode * @psalm-param array $customRenameColumns * @psalm-return array */ - private function getColumnAliasMap($className, $mode, array $customRenameColumns) + private function getColumnAliasMap(string $className, $mode, array $customRenameColumns): array { if ($customRenameColumns) { // for BC with 2.2-2.3 API $mode = self::COLUMN_RENAMING_CUSTOM; diff --git a/lib/Doctrine/ORM/Query/SqlWalker.php b/lib/Doctrine/ORM/Query/SqlWalker.php index 2831ac07a0e..b10f809091a 100644 --- a/lib/Doctrine/ORM/Query/SqlWalker.php +++ b/lib/Doctrine/ORM/Query/SqlWalker.php @@ -936,11 +936,11 @@ public function walkRangeVariableDeclaration($rangeVariableDeclaration) /** * Generate appropriate SQL for RangeVariableDeclaration AST node - * - * @param AST\RangeVariableDeclaration $rangeVariableDeclaration */ - private function generateRangeVariableDeclarationSQL($rangeVariableDeclaration, bool $buildNestedJoins): string - { + private function generateRangeVariableDeclarationSQL( + AST\RangeVariableDeclaration $rangeVariableDeclaration, + bool $buildNestedJoins + ): string { $class = $this->em->getClassMetadata($rangeVariableDeclaration->abstractSchemaName); $dqlAlias = $rangeVariableDeclaration->aliasIdentificationVariable; @@ -2354,8 +2354,10 @@ public function walkResultVariable($resultVariable) * * @throws QueryException */ - private function getChildDiscriminatorsFromClassMetadata(ClassMetadataInfo $rootClass, AST\InstanceOfExpression $instanceOfExpr): string - { + private function getChildDiscriminatorsFromClassMetadata( + ClassMetadataInfo $rootClass, + AST\InstanceOfExpression $instanceOfExpr + ): string { $sqlParameterList = []; $discriminators = []; foreach ($instanceOfExpr->value as $parameter) { diff --git a/lib/Doctrine/ORM/QueryBuilder.php b/lib/Doctrine/ORM/QueryBuilder.php index feb8185ef1d..b9f7c47d708 100644 --- a/lib/Doctrine/ORM/QueryBuilder.php +++ b/lib/Doctrine/ORM/QueryBuilder.php @@ -393,10 +393,8 @@ public function getQuery() * * @param string $alias The alias of the new join entity * @param string $parentAlias The parent entity alias of the join relationship - * - * @return string */ - private function findRootAlias($alias, $parentAlias) + private function findRootAlias(string $alias, string $parentAlias): string { $rootAlias = null; @@ -1394,10 +1392,7 @@ public function getDQLParts() return $this->_dqlParts; } - /** - * @return string - */ - private function getDQLForDelete() + private function getDQLForDelete(): string { return 'DELETE' . $this->getReducedDQLQueryPart('from', ['pre' => ' ', 'separator' => ', ']) @@ -1405,10 +1400,7 @@ private function getDQLForDelete() . $this->getReducedDQLQueryPart('orderBy', ['pre' => ' ORDER BY ', 'separator' => ', ']); } - /** - * @return string - */ - private function getDQLForUpdate() + private function getDQLForUpdate(): string { return 'UPDATE' . $this->getReducedDQLQueryPart('from', ['pre' => ' ', 'separator' => ', ']) @@ -1417,10 +1409,7 @@ private function getDQLForUpdate() . $this->getReducedDQLQueryPart('orderBy', ['pre' => ' ORDER BY ', 'separator' => ', ']); } - /** - * @return string - */ - private function getDQLForSelect() + private function getDQLForSelect(): string { $dql = 'SELECT' . ($this->_dqlParts['distinct'] === true ? ' DISTINCT' : '') diff --git a/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php b/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php index 53a1b017cb1..f7fe2476a42 100644 --- a/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php +++ b/lib/Doctrine/ORM/Repository/DefaultRepositoryFactory.php @@ -40,7 +40,7 @@ final class DefaultRepositoryFactory implements RepositoryFactory /** * {@inheritdoc} */ - public function getRepository(EntityManagerInterface $entityManager, $entityName) + public function getRepository(EntityManagerInterface $entityManager, $entityName): ObjectRepository { $repositoryHash = $entityManager->getClassMetadata($entityName)->getName() . spl_object_hash($entityManager); @@ -56,11 +56,11 @@ public function getRepository(EntityManagerInterface $entityManager, $entityName * * @param EntityManagerInterface $entityManager The EntityManager instance. * @param string $entityName The name of the entity. - * - * @return ObjectRepository */ - private function createRepository(EntityManagerInterface $entityManager, $entityName) - { + private function createRepository( + EntityManagerInterface $entityManager, + string $entityName + ): ObjectRepository { $metadata = $entityManager->getClassMetadata($entityName); $repositoryClassName = $metadata->customRepositoryClassName ?: $entityManager->getConfiguration()->getDefaultRepositoryClassName(); diff --git a/lib/Doctrine/ORM/Tools/Console/Command/MappingDescribeCommand.php b/lib/Doctrine/ORM/Tools/Console/Command/MappingDescribeCommand.php index 4c4c41a4513..adc1b4f4841 100644 --- a/lib/Doctrine/ORM/Tools/Console/Command/MappingDescribeCommand.php +++ b/lib/Doctrine/ORM/Tools/Console/Command/MappingDescribeCommand.php @@ -59,10 +59,7 @@ */ final class MappingDescribeCommand extends Command { - /** - * {@inheritdoc} - */ - protected function configure() + protected function configure(): void { $this->setName('orm:mapping:describe') ->addArgument('entityName', InputArgument::REQUIRED, 'Full or partial name of entity') @@ -79,10 +76,7 @@ protected function configure() ); } - /** - * {@inheritdoc} - */ - protected function execute(InputInterface $input, OutputInterface $output) + protected function execute(InputInterface $input, OutputInterface $output): int { $ui = new SymfonyStyle($input, $output); @@ -99,8 +93,11 @@ protected function execute(InputInterface $input, OutputInterface $output) * * @param string $entityName Full or partial entity class name */ - private function displayEntity($entityName, EntityManagerInterface $entityManager, SymfonyStyle $ui) - { + private function displayEntity( + string $entityName, + EntityManagerInterface $entityManager, + SymfonyStyle $ui + ): void { $metadata = $this->getClassMetadata($entityName, $entityManager); $ui->table( @@ -171,11 +168,11 @@ private function getMappedEntities(EntityManagerInterface $entityManager): array * name * * @param string $entityName Full or partial entity name - * - * @return ClassMetadata */ - private function getClassMetadata($entityName, EntityManagerInterface $entityManager) - { + private function getClassMetadata( + string $entityName, + EntityManagerInterface $entityManager + ): ClassMetadata { try { return $entityManager->getClassMetadata($entityName); } catch (MappingException $e) { @@ -210,10 +207,8 @@ static function ($mappedEntity) use ($entityName) { * Format the given value for console output * * @param mixed $value - * - * @return string */ - private function formatValue($value) + private function formatValue($value): string { if ($value === '') { return ''; @@ -256,7 +251,7 @@ private function formatValue($value) * * @psalm-return array{0: string, 1: string} */ - private function formatField($label, $value): array + private function formatField(string $label, $value): array { if ($value === null) { $value = 'None'; diff --git a/lib/Doctrine/ORM/Tools/ConvertDoctrine1Schema.php b/lib/Doctrine/ORM/Tools/ConvertDoctrine1Schema.php index a4fdbf6817d..a9544396c56 100644 --- a/lib/Doctrine/ORM/Tools/ConvertDoctrine1Schema.php +++ b/lib/Doctrine/ORM/Tools/ConvertDoctrine1Schema.php @@ -107,8 +107,10 @@ public function getMetadata() /** * @param mixed[] $mappingInformation */ - private function convertToClassMetadataInfo(string $className, $mappingInformation): ClassMetadataInfo - { + private function convertToClassMetadataInfo( + string $className, + array $mappingInformation + ): ClassMetadataInfo { $metadata = new ClassMetadataInfo($className); $this->convertTableName($className, $mappingInformation, $metadata); @@ -137,13 +139,13 @@ private function convertTableName(string $className, array $model, ClassMetadata } /** - * @param string $className * @param mixed[] $model - * - * @return void */ - private function convertColumns($className, array $model, ClassMetadataInfo $metadata) - { + private function convertColumns( + string $className, + array $model, + ClassMetadataInfo $metadata + ): void { $id = false; if (isset($model['columns']) && $model['columns']) { @@ -169,16 +171,18 @@ private function convertColumns($className, array $model, ClassMetadataInfo $met } /** - * @param string $className - * @param string $name * @param string|mixed[] $column * * @return mixed[] * * @throws ToolsException */ - private function convertColumn($className, $name, $column, ClassMetadataInfo $metadata) - { + private function convertColumn( + string $className, + string $name, + $column, + ClassMetadataInfo $metadata + ): array { if (is_string($column)) { $string = $column; $column = []; @@ -259,13 +263,13 @@ private function convertColumn($className, $name, $column, ClassMetadataInfo $me } /** - * @param string $className * @param mixed[] $model - * - * @return void */ - private function convertIndexes($className, array $model, ClassMetadataInfo $metadata) - { + private function convertIndexes( + string $className, + array $model, + ClassMetadataInfo $metadata + ): void { if (empty($model['indexes'])) { return; } @@ -281,13 +285,13 @@ private function convertIndexes($className, array $model, ClassMetadataInfo $met } /** - * @param string $className * @param mixed[] $model - * - * @return void */ - private function convertRelations($className, array $model, ClassMetadataInfo $metadata) - { + private function convertRelations( + string $className, + array $model, + ClassMetadataInfo $metadata + ): void { if (empty($model['relations'])) { return; } diff --git a/lib/Doctrine/ORM/Tools/DebugUnitOfWorkListener.php b/lib/Doctrine/ORM/Tools/DebugUnitOfWorkListener.php index f9a9b046aba..d8dab8afab5 100644 --- a/lib/Doctrine/ORM/Tools/DebugUnitOfWorkListener.php +++ b/lib/Doctrine/ORM/Tools/DebugUnitOfWorkListener.php @@ -137,10 +137,8 @@ public function dumpIdentityMap(EntityManagerInterface $em) /** * @param mixed $var - * - * @return string */ - private function getType($var) + private function getType($var): string { if (is_object($var)) { $refl = new ReflectionObject($var); @@ -151,12 +149,7 @@ private function getType($var) return gettype($var); } - /** - * @param object $entity - * - * @return string - */ - private function getIdString($entity, UnitOfWork $uow) + private function getIdString(object $entity, UnitOfWork $uow): string { if ($uow->isInIdentityMap($entity)) { $ids = $uow->getEntityIdentifier($entity); diff --git a/lib/Doctrine/ORM/Tools/EntityGenerator.php b/lib/Doctrine/ORM/Tools/EntityGenerator.php index 6b1a77c37ec..fb1c8471bf7 100644 --- a/lib/Doctrine/ORM/Tools/EntityGenerator.php +++ b/lib/Doctrine/ORM/Tools/EntityGenerator.php @@ -747,10 +747,7 @@ protected function generateEntityConstructor(ClassMetadataInfo $metadata) return ''; } - /** - * @return string - */ - private function generateEmbeddableConstructor(ClassMetadataInfo $metadata) + private function generateEmbeddableConstructor(ClassMetadataInfo $metadata): string { $paramTypes = []; $paramVariables = []; diff --git a/lib/Doctrine/ORM/Tools/EntityRepositoryGenerator.php b/lib/Doctrine/ORM/Tools/EntityRepositoryGenerator.php index d2b7487b6c1..9fbde5f53aa 100644 --- a/lib/Doctrine/ORM/Tools/EntityRepositoryGenerator.php +++ b/lib/Doctrine/ORM/Tools/EntityRepositoryGenerator.php @@ -95,24 +95,16 @@ public function generateEntityRepositoryClass($fullClassName) /** * Generates the namespace, if class do not have namespace, return empty string instead. - * - * @param string $fullClassName - * - * @return string $namespace */ - private function getClassNamespace($fullClassName) + private function getClassNamespace(string $fullClassName): string { return substr($fullClassName, 0, strrpos($fullClassName, '\\')); } /** * Generates the class name - * - * @param string $fullClassName - * - * @return string */ - private function generateClassName($fullClassName) + private function generateClassName(string $fullClassName): string { $namespace = $this->getClassNamespace($fullClassName); @@ -129,22 +121,15 @@ private function generateClassName($fullClassName) * Generates the namespace statement, if class do not have namespace, return empty string instead. * * @param string $fullClassName The full repository class name. - * - * @return string $namespace */ - private function generateEntityRepositoryNamespace($fullClassName) + private function generateEntityRepositoryNamespace(string $fullClassName): string { $namespace = $this->getClassNamespace($fullClassName); return $namespace ? 'namespace ' . $namespace . ';' : ''; } - /** - * @param string $fullClassName - * - * @return string $repositoryName - */ - private function generateEntityRepositoryName($fullClassName) + private function generateEntityRepositoryName(string $fullClassName): string { $namespace = $this->getClassNamespace($fullClassName); diff --git a/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryOutputWalker.php b/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryOutputWalker.php index b783390b0dc..62521fb6450 100644 --- a/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryOutputWalker.php +++ b/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryOutputWalker.php @@ -128,10 +128,8 @@ public function __construct($query, $parserResult, array $queryComponents) /** * Check if the platform supports the ROW_NUMBER window function. - * - * @return bool */ - private function platformSupportsRowNumber() + private function platformSupportsRowNumber(): bool { return $this->platform instanceof PostgreSqlPlatform || $this->platform instanceof SQLServerPlatform @@ -146,7 +144,7 @@ private function platformSupportsRowNumber() * Rebuilds a select statement's order by clause for use in a * ROW_NUMBER() OVER() expression. */ - private function rebuildOrderByForRowNumber(SelectStatement $AST) + private function rebuildOrderByForRowNumber(SelectStatement $AST): void { $orderByClause = $AST->orderByClause; $selectAliasToExpressionMap = []; @@ -306,7 +304,7 @@ public function walkSelectStatementWithoutRowNumber(SelectStatement $AST, $addMi * Finds all PathExpressions in an AST's OrderByClause, and ensures that * the referenced fields are present in the SelectClause of the passed AST. */ - private function addMissingItemsFromOrderByToSelect(SelectStatement $AST) + private function addMissingItemsFromOrderByToSelect(SelectStatement $AST): void { $this->orderByPathExpressions = []; @@ -485,12 +483,10 @@ public function getOrderByPathExpressions() } /** - * @return string - * * @throws OptimisticLockException * @throws QueryException */ - private function getInnerSQL(SelectStatement $AST) + private function getInnerSQL(SelectStatement $AST): string { // Set every select expression as visible(hidden = false) to // make $AST have scalar mappings properly - this is relevant for referencing selected @@ -517,7 +513,7 @@ private function getInnerSQL(SelectStatement $AST) * * @psalm-return array */ - private function getSQLIdentifier(SelectStatement $AST) + private function getSQLIdentifier(SelectStatement $AST): array { // Find out the SQL alias of the identifier column of the root entity. // It may be possible to make this work with multiple root entities but that diff --git a/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryWalker.php b/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryWalker.php index a40f0545481..694d06b4d3b 100644 --- a/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryWalker.php +++ b/lib/Doctrine/ORM/Tools/Pagination/LimitSubqueryWalker.php @@ -24,6 +24,7 @@ use Doctrine\ORM\Mapping\ClassMetadataInfo; use Doctrine\ORM\Query; use Doctrine\ORM\Query\AST\Functions\IdentityFunction; +use Doctrine\ORM\Query\AST\Node; use Doctrine\ORM\Query\AST\PathExpression; use Doctrine\ORM\Query\AST\SelectExpression; use Doctrine\ORM\Query\AST\SelectStatement; @@ -122,7 +123,7 @@ public function walkSelectStatement(SelectStatement $AST) /** * Validate the AST to ensure that this walker is able to properly manipulate it. */ - private function validate(SelectStatement $AST) + private function validate(SelectStatement $AST): void { // Prevent LimitSubqueryWalker from being used with queries that include // a limit, a fetched to-many join, and an order by condition that @@ -163,7 +164,7 @@ private function validate(SelectStatement $AST) * * @return IdentityFunction|PathExpression */ - private function createSelectExpressionItem(PathExpression $pathExpression) + private function createSelectExpressionItem(PathExpression $pathExpression): Node { if ($pathExpression->type === PathExpression::TYPE_SINGLE_VALUED_ASSOCIATION) { $identity = new IdentityFunction('identity'); diff --git a/lib/Doctrine/ORM/Tools/Pagination/Paginator.php b/lib/Doctrine/ORM/Tools/Pagination/Paginator.php index 4e0b9f7e628..150e39b1af9 100644 --- a/lib/Doctrine/ORM/Tools/Pagination/Paginator.php +++ b/lib/Doctrine/ORM/Tools/Pagination/Paginator.php @@ -180,14 +180,7 @@ public function getIterator() return new ArrayIterator($result); } - /** - * Clones a query. - * - * @param Query $query The query. - * - * @return Query The cloned query. - */ - private function cloneQuery(Query $query) + private function cloneQuery(Query $query): Query { $cloneQuery = clone $query; @@ -203,12 +196,8 @@ private function cloneQuery(Query $query) /** * Determines whether to use an output walker for the query. - * - * @param Query $query The query. - * - * @return bool */ - private function useOutputWalker(Query $query) + private function useOutputWalker(Query $query): bool { if ($this->useOutputWalkers === null) { return (bool) $query->getHint(Query::HINT_CUSTOM_OUTPUT_WALKER) === false; @@ -219,10 +208,8 @@ private function useOutputWalker(Query $query) /** * Appends a custom tree walker to the tree walkers hint. - * - * @param string $walkerClass */ - private function appendTreeWalker(Query $query, $walkerClass) + private function appendTreeWalker(Query $query, string $walkerClass): void { $hints = $query->getHint(Query::HINT_CUSTOM_TREE_WALKERS); @@ -236,10 +223,8 @@ private function appendTreeWalker(Query $query, $walkerClass) /** * Returns Query prepared to count. - * - * @return Query */ - private function getCountQuery() + private function getCountQuery(): Query { $countQuery = $this->cloneQuery($this->query); diff --git a/lib/Doctrine/ORM/Tools/ResolveTargetEntityListener.php b/lib/Doctrine/ORM/Tools/ResolveTargetEntityListener.php index 4a6459085de..45c55b177f7 100644 --- a/lib/Doctrine/ORM/Tools/ResolveTargetEntityListener.php +++ b/lib/Doctrine/ORM/Tools/ResolveTargetEntityListener.php @@ -25,7 +25,6 @@ use Doctrine\ORM\Event\OnClassMetadataNotFoundEventArgs; use Doctrine\ORM\Events; use Doctrine\ORM\Mapping\ClassMetadata; -use Doctrine\ORM\Mapping\ClassMetadataInfo; use function array_key_exists; use function array_replace_recursive; @@ -110,12 +109,9 @@ public function loadClassMetadata(LoadClassMetadataEventArgs $args) } /** - * @param ClassMetadataInfo $classMetadata - * @param mixed[] $mapping - * - * @return void + * @param mixed[] $mapping */ - private function remapAssociation($classMetadata, $mapping) + private function remapAssociation(ClassMetadata $classMetadata, $mapping): void { $newMapping = $this->resolveTargetEntities[$mapping['targetEntity']]; $newMapping = array_replace_recursive($mapping, $newMapping); diff --git a/lib/Doctrine/ORM/Tools/SchemaTool.php b/lib/Doctrine/ORM/Tools/SchemaTool.php index 85443e4148c..7957fc22d63 100644 --- a/lib/Doctrine/ORM/Tools/SchemaTool.php +++ b/lib/Doctrine/ORM/Tools/SchemaTool.php @@ -373,12 +373,8 @@ static function (ClassMetadata $class) use ($idMapping): bool { /** * Gets a portable column definition as required by the DBAL for the discriminator * column of a class. - * - * @param ClassMetadata $class - * - * @return void */ - private function addDiscriminatorColumnDefinition($class, Table $table) + private function addDiscriminatorColumnDefinition(ClassMetadata $class, Table $table): void { $discrColumn = $class->discriminatorColumn; @@ -405,12 +401,8 @@ private function addDiscriminatorColumnDefinition($class, Table $table) /** * Gathers the column definitions as required by the DBAL of all field mappings * found in the given class. - * - * @param ClassMetadata $class - * - * @return void */ - private function gatherColumns($class, Table $table) + private function gatherColumns(ClassMetadata $class, Table $table): void { $pkColumns = []; diff --git a/lib/Doctrine/ORM/UnitOfWork.php b/lib/Doctrine/ORM/UnitOfWork.php index e638fd5ad69..2cc6630c7e4 100644 --- a/lib/Doctrine/ORM/UnitOfWork.php +++ b/lib/Doctrine/ORM/UnitOfWork.php @@ -513,10 +513,8 @@ private function postCommitCleanup($entity): void /** * Computes the changesets of all entities scheduled for insertion. - * - * @return void */ - private function computeScheduleInsertsChangeSets() + private function computeScheduleInsertsChangeSets(): void { foreach ($this->entityInsertions as $entity) { $class = $this->em->getClassMetadata(get_class($entity)); @@ -533,13 +531,9 @@ private function computeScheduleInsertsChangeSets() * 3. Proxies are skipped. * 4. Only if entity is properly managed. * - * @param object $entity - * - * @return void - * * @throws InvalidArgumentException */ - private function computeSingleEntityChangeSet($entity) + private function computeSingleEntityChangeSet(object $entity): void { $state = $this->getEntityState($entity); @@ -964,13 +958,7 @@ private function computeAssociationChanges(array $assoc, $value): void } } - /** - * @param ClassMetadata $class - * @param object $entity - * - * @return void - */ - private function persistNew($class, $entity) + private function persistNew(ClassMetadata $class, object $entity): void { $oid = spl_object_hash($entity); $invoke = $this->listenersInvoker->getSubscribedSystems($class, Events::prePersist); @@ -1092,12 +1080,8 @@ public function recomputeSingleEntityChangeSet(ClassMetadata $class, $entity) /** * Executes all entity insertions for entities of the specified type. - * - * @param ClassMetadata $class - * - * @return void */ - private function executeInserts($class) + private function executeInserts(ClassMetadata $class): void { $entities = []; $className = $class->name; @@ -1156,11 +1140,11 @@ private function executeInserts($class) } } - /** - * @param object $entity - */ - private function addToEntityIdentifiersAndEntityMap(ClassMetadata $class, string $oid, $entity): void - { + private function addToEntityIdentifiersAndEntityMap( + ClassMetadata $class, + string $oid, + object $entity + ): void { $identifier = []; foreach ($class->getIdentifierFieldNames() as $idField) { @@ -1182,12 +1166,8 @@ private function addToEntityIdentifiersAndEntityMap(ClassMetadata $class, string /** * Executes all entity updates for entities of the specified type. - * - * @param ClassMetadata $class - * - * @return void */ - private function executeUpdates($class) + private function executeUpdates(ClassMetadata $class): void { $className = $class->name; $persister = $this->getEntityPersister($className); @@ -1219,12 +1199,8 @@ private function executeUpdates($class) /** * Executes all entity deletions for entities of the specified type. - * - * @param ClassMetadata $class - * - * @return void */ - private function executeDeletions($class) + private function executeDeletions(ClassMetadata $class): void { $className = $class->name; $persister = $this->getEntityPersister($className); @@ -2039,15 +2015,13 @@ private function doMerge( } /** - * @param object $entity - * @param object $managedCopy - * - * @return void - * * @throws OptimisticLockException */ - private function ensureVersionMatch(ClassMetadata $class, $entity, $managedCopy) - { + private function ensureVersionMatch( + ClassMetadata $class, + object $entity, + object $managedCopy + ): void { if (! ($class->isVersioned && $this->isLoaded($managedCopy) && $this->isLoaded($entity))) { return; } @@ -2067,12 +2041,8 @@ private function ensureVersionMatch(ClassMetadata $class, $entity, $managedCopy) /** * Tests if an entity is loaded - must either be a loaded proxy or not a proxy - * - * @param object $entity - * - * @return bool */ - private function isLoaded($entity) + private function isLoaded(object $entity): bool { return ! ($entity instanceof Proxy) || $entity->__isInitialized(); } @@ -2125,14 +2095,14 @@ public function detach($entity) /** * Executes a detach operation on the given entity. * - * @param object $entity * @param mixed[] $visited * @param bool $noCascade if true, don't cascade detach operation. - * - * @return void */ - private function doDetach($entity, array &$visited, $noCascade = false) - { + private function doDetach( + object $entity, + array &$visited, + bool $noCascade = false + ): void { $oid = spl_object_hash($entity); if (isset($visited[$oid])) { @@ -2614,12 +2584,7 @@ public function isCollectionScheduledForDeletion(PersistentCollection $coll) return isset($this->collectionDeletions[spl_object_hash($coll)]); } - /** - * @param ClassMetadata $class - * - * @return ObjectManagerAware|object - */ - private function newInstance($class) + private function newInstance(ClassMetadata $class): object { $entity = $class->newInstance(); diff --git a/lib/Doctrine/ORM/Utility/IdentifierFlattener.php b/lib/Doctrine/ORM/Utility/IdentifierFlattener.php index 954501d4a4b..216fd66cb05 100644 --- a/lib/Doctrine/ORM/Utility/IdentifierFlattener.php +++ b/lib/Doctrine/ORM/Utility/IdentifierFlattener.php @@ -64,7 +64,7 @@ public function __construct(UnitOfWork $unitOfWork, ClassMetadataFactory $metada * * @psalm-return array */ - public function flattenIdentifier(ClassMetadata $class, array $id) + public function flattenIdentifier(ClassMetadata $class, array $id): array { $flatId = [];