2020use function is_a ;
2121use function method_exists ;
2222
23- /**
24- * @template E of object
25- */
2623class EntityPreloader
2724{
2825
@@ -36,12 +33,10 @@ public function __construct(
3633 }
3734
3835 /**
39- * @param list<S > $sourceEntities
36+ * @param list<object > $sourceEntities
4037 * @param positive-int|null $batchSize
4138 * @param non-negative-int|null $maxFetchJoinSameFieldCount
42- * @return list<E>
43- *
44- * @template S of E
39+ * @return list<object>
4540 */
4641 public function preload (
4742 array $ sourceEntities ,
@@ -59,7 +54,7 @@ public function preload(
5954 $ sourceClassMetadata = $ this ->entityManager ->getClassMetadata ($ sourceEntitiesCommonAncestor );
6055 $ associationMapping = $ sourceClassMetadata ->getAssociationMapping ($ sourcePropertyName );
6156
62- /** @var ClassMetadata<E > $targetClassMetadata */
57+ /** @var ClassMetadata<object > $targetClassMetadata */
6358 $ targetClassMetadata = $ this ->entityManager ->getClassMetadata ($ associationMapping ['targetEntity ' ]);
6459
6560 if (isset ($ associationMapping ['indexBy ' ])) {
@@ -79,10 +74,8 @@ public function preload(
7974 }
8075
8176 /**
82- * @param list<S> $entities
83- * @return class-string<S>|null
84- *
85- * @template S of E
77+ * @param list<object> $entities
78+ * @return class-string<object>|null
8679 */
8780 private function getCommonAncestor (array $ entities ): ?string
8881 {
@@ -97,7 +90,6 @@ private function getCommonAncestor(array $entities): ?string
9790 }
9891
9992 while (!is_a ($ entityClassName , $ commonAncestor , true )) {
100- /** @var class-string<S>|false $commonAncestor */
10193 $ commonAncestor = get_parent_class ($ commonAncestor );
10294
10395 if ($ commonAncestor === false ) {
@@ -110,13 +102,11 @@ private function getCommonAncestor(array $entities): ?string
110102 }
111103
112104 /**
113- * @param ClassMetadata<T > $classMetadata
114- * @param list<T > $entities
105+ * @param ClassMetadata<object > $classMetadata
106+ * @param list<object > $entities
115107 * @param positive-int $batchSize
116108 * @param non-negative-int $maxFetchJoinSameFieldCount
117- * @return list<T>
118- *
119- * @template T of E
109+ * @return list<object>
120110 */
121111 private function loadProxies (
122112 ClassMetadata $ classMetadata ,
@@ -153,15 +143,12 @@ private function loadProxies(
153143 }
154144
155145 /**
156- * @param list<S > $sourceEntities
157- * @param ClassMetadata<S > $sourceClassMetadata
158- * @param ClassMetadata<T > $targetClassMetadata
146+ * @param list<object > $sourceEntities
147+ * @param ClassMetadata<object > $sourceClassMetadata
148+ * @param ClassMetadata<object > $targetClassMetadata
159149 * @param positive-int|null $batchSize
160150 * @param non-negative-int $maxFetchJoinSameFieldCount
161- * @return list<T>
162- *
163- * @template S of E
164- * @template T of E
151+ * @return list<object>
165152 */
166153 private function preloadToMany (
167154 array $ sourceEntities ,
@@ -242,15 +229,12 @@ private function preloadToMany(
242229
243230 /**
244231 * @param array<string, mixed>|ArrayAccess<string, mixed> $associationMapping
245- * @param ClassMetadata<S > $sourceClassMetadata
246- * @param ClassMetadata<T > $targetClassMetadata
232+ * @param ClassMetadata<object > $sourceClassMetadata
233+ * @param ClassMetadata<object > $targetClassMetadata
247234 * @param list<mixed> $uninitializedSourceEntityIdsChunk
248- * @param array<string, PersistentCollection<int, T >> $uninitializedCollections
235+ * @param array<string, PersistentCollection<int, object >> $uninitializedCollections
249236 * @param non-negative-int $maxFetchJoinSameFieldCount
250- * @return array<string, T>
251- *
252- * @template S of E
253- * @template T of E
237+ * @return array<string, object>
254238 */
255239 private function preloadOneToManyInner (
256240 array |ArrayAccess $ associationMapping ,
@@ -295,15 +279,12 @@ private function preloadOneToManyInner(
295279
296280 /**
297281 * @param array<string, mixed>|ArrayAccess<string, mixed> $associationMapping
298- * @param ClassMetadata<S > $sourceClassMetadata
299- * @param ClassMetadata<T > $targetClassMetadata
282+ * @param ClassMetadata<object > $sourceClassMetadata
283+ * @param ClassMetadata<object > $targetClassMetadata
300284 * @param list<mixed> $uninitializedSourceEntityIdsChunk
301- * @param array<string, PersistentCollection<int, T >> $uninitializedCollections
285+ * @param array<string, PersistentCollection<int, object >> $uninitializedCollections
302286 * @param non-negative-int $maxFetchJoinSameFieldCount
303- * @return array<string, T>
304- *
305- * @template S of E
306- * @template T of E
287+ * @return array<string, object>
307288 */
308289 private function preloadManyToManyInner (
309290 array |ArrayAccess $ associationMapping ,
@@ -346,7 +327,7 @@ private function preloadManyToManyInner(
346327 $ targetEntityId = $ manyToManyRow ['targetId ' ];
347328 $ targetEntityKey = (string ) $ targetEntityId ;
348329
349- /** @var T |false $targetEntity */
330+ /** @var object |false $targetEntity */
350331 $ targetEntity = $ this ->entityManager ->getUnitOfWork ()->tryGetById ($ targetEntityId , $ targetClassMetadata ->getName ());
351332
352333 if ($ targetEntity !== false && !$ this ->entityManager ->isUninitializedObject ($ targetEntity )) {
@@ -372,15 +353,12 @@ private function preloadManyToManyInner(
372353 }
373354
374355 /**
375- * @param list<S > $sourceEntities
376- * @param ClassMetadata<S > $sourceClassMetadata
377- * @param ClassMetadata<T > $targetClassMetadata
356+ * @param list<object > $sourceEntities
357+ * @param ClassMetadata<object > $sourceClassMetadata
358+ * @param ClassMetadata<object > $targetClassMetadata
378359 * @param positive-int|null $batchSize
379360 * @param non-negative-int $maxFetchJoinSameFieldCount
380- * @return list<T>
381- *
382- * @template S of E
383- * @template T of E
361+ * @return list<object>
384362 */
385363 private function preloadToOne (
386364 array $ sourceEntities ,
@@ -414,15 +392,12 @@ private function preloadToOne(
414392 }
415393
416394 /**
417- * @param ClassMetadata<T > $targetClassMetadata
395+ * @param ClassMetadata<object > $targetClassMetadata
418396 * @param list<mixed> $fieldValues
419- * @param ClassMetadata<R > $referencedClassMetadata
397+ * @param ClassMetadata<object > $referencedClassMetadata
420398 * @param non-negative-int $maxFetchJoinSameFieldCount
421399 * @param array<string, 'asc'|'desc'> $orderBy
422- * @return list<T>
423- *
424- * @template T of E
425- * @template R of E
400+ * @return list<object>
426401 */
427402 private function loadEntitiesBy (
428403 ClassMetadata $ targetClassMetadata ,
@@ -491,9 +466,7 @@ private function convertFieldValuesToDatabaseValues(
491466 }
492467
493468 /**
494- * @param ClassMetadata<C> $classMetadata
495- *
496- * @template C of E
469+ * @param ClassMetadata<object> $classMetadata
497470 */
498471 private function getIdentifierFieldType (ClassMetadata $ classMetadata ): Type
499472 {
@@ -508,10 +481,8 @@ private function getIdentifierFieldType(ClassMetadata $classMetadata): Type
508481 }
509482
510483 /**
511- * @param ClassMetadata<S > $sourceClassMetadata
484+ * @param ClassMetadata<object > $sourceClassMetadata
512485 * @param array<string, array<string, int>> $alreadyPreloadedJoins
513- *
514- * @template S of E
515486 */
516487 private function addFetchJoinsToPreventFetchDuringHydration (
517488 string $ alias ,
@@ -530,7 +501,7 @@ private function addFetchJoinsToPreventFetchDuringHydration(
530501 continue ;
531502 }
532503
533- /** @var ClassMetadata<E > $targetClassMetadata */
504+ /** @var ClassMetadata<object > $targetClassMetadata */
534505 $ targetClassMetadata = $ this ->entityManager ->getClassMetadata ($ associationMapping ['targetEntity ' ]);
535506
536507 $ isToOne = ($ associationMapping ['type ' ] & ClassMetadata::TO_ONE ) !== 0 ;
0 commit comments