99use Psr \Log \LoggerInterface ;
1010use Psr \Log \NullLogger ;
1111use TheCodingMachine \TDBM \QueryFactory \SmartEagerLoad \PartialQueryFactory ;
12+ use TheCodingMachine \TDBM \QueryFactory \SmartEagerLoad \Query \PartialQuery ;
1213use TheCodingMachine \TDBM \QueryFactory \SmartEagerLoad \StorageNode ;
1314use TheCodingMachine \TDBM \Utils \DbalUtils ;
1415
@@ -68,11 +69,13 @@ class InnerResultIterator implements \Iterator, \Countable, \ArrayAccess
6869 */
6970 private $ logger ;
7071 /**
71- * @var PartialQueryFactory |null
72+ * @var PartialQuery |null
7273 */
73- private $ partialQueryFactory ;
74-
75- protected $ count = null ;
74+ private $ partialQuery ;
75+ /**
76+ * @var int|null
77+ */
78+ protected $ count ;
7679
7780 private function __construct ()
7881 {
@@ -96,7 +99,11 @@ public static function createInnerResultIterator(string $magicSql, array $parame
9699 $ iterator ->magicQuery = $ magicQuery ;
97100 $ iterator ->databasePlatform = $ iterator ->tdbmService ->getConnection ()->getDatabasePlatform ();
98101 $ iterator ->logger = $ logger ;
99- $ iterator ->partialQueryFactory = $ partialQueryFactory ;
102+ $ partialQuery = null ;
103+ if ($ iterator instanceof StorageNode && $ partialQueryFactory !== null ) {
104+ $ iterator ->partialQuery = $ partialQueryFactory ->getPartialQuery ($ iterator , $ magicQuery , $ parameters );
105+ }
106+
100107 return $ iterator ;
101108 }
102109
@@ -208,11 +215,6 @@ public function next()
208215 $ beansData [$ columnDescriptor ['tableGroup ' ]][$ columnDescriptor ['table ' ]][$ columnDescriptor ['column ' ]] = $ value ;
209216 }
210217
211- $ partialQuery = null ;
212- if ($ this instanceof StorageNode && $ this ->partialQueryFactory !== null ) {
213- $ partialQuery = $ this ->partialQueryFactory ->getPartialQuery ($ this , $ this ->magicQuery , $ this ->parameters );
214- }
215-
216218 $ reflectionClassCache = [];
217219 $ firstBean = true ;
218220 foreach ($ beansData as $ beanData ) {
@@ -250,7 +252,7 @@ public function next()
250252 // Let's bypass the constructor when creating the bean!
251253 /** @var AbstractTDBMObject $bean */
252254 $ bean = $ reflectionClassCache [$ actualClassName ]->newInstanceWithoutConstructor ();
253- $ bean ->_constructFromData ($ beanData , $ this ->tdbmService , $ partialQuery );
255+ $ bean ->_constructFromData ($ beanData , $ this ->tdbmService , $ this -> partialQuery );
254256 }
255257
256258 // The first bean is the one containing the main table.
0 commit comments