9
9
use Psr \Log \LoggerInterface ;
10
10
use Psr \Log \NullLogger ;
11
11
use TheCodingMachine \TDBM \QueryFactory \SmartEagerLoad \PartialQueryFactory ;
12
+ use TheCodingMachine \TDBM \QueryFactory \SmartEagerLoad \Query \PartialQuery ;
12
13
use TheCodingMachine \TDBM \QueryFactory \SmartEagerLoad \StorageNode ;
13
14
use TheCodingMachine \TDBM \Utils \DbalUtils ;
14
15
@@ -68,11 +69,13 @@ class InnerResultIterator implements \Iterator, \Countable, \ArrayAccess
68
69
*/
69
70
private $ logger ;
70
71
/**
71
- * @var PartialQueryFactory |null
72
+ * @var PartialQuery |null
72
73
*/
73
- private $ partialQueryFactory ;
74
-
75
- protected $ count = null ;
74
+ private $ partialQuery ;
75
+ /**
76
+ * @var int|null
77
+ */
78
+ protected $ count ;
76
79
77
80
private function __construct ()
78
81
{
@@ -96,7 +99,11 @@ public static function createInnerResultIterator(string $magicSql, array $parame
96
99
$ iterator ->magicQuery = $ magicQuery ;
97
100
$ iterator ->databasePlatform = $ iterator ->tdbmService ->getConnection ()->getDatabasePlatform ();
98
101
$ 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
+
100
107
return $ iterator ;
101
108
}
102
109
@@ -208,11 +215,6 @@ public function next()
208
215
$ beansData [$ columnDescriptor ['tableGroup ' ]][$ columnDescriptor ['table ' ]][$ columnDescriptor ['column ' ]] = $ value ;
209
216
}
210
217
211
- $ partialQuery = null ;
212
- if ($ this instanceof StorageNode && $ this ->partialQueryFactory !== null ) {
213
- $ partialQuery = $ this ->partialQueryFactory ->getPartialQuery ($ this , $ this ->magicQuery , $ this ->parameters );
214
- }
215
-
216
218
$ reflectionClassCache = [];
217
219
$ firstBean = true ;
218
220
foreach ($ beansData as $ beanData ) {
@@ -250,7 +252,7 @@ public function next()
250
252
// Let's bypass the constructor when creating the bean!
251
253
/** @var AbstractTDBMObject $bean */
252
254
$ bean = $ reflectionClassCache [$ actualClassName ]->newInstanceWithoutConstructor ();
253
- $ bean ->_constructFromData ($ beanData , $ this ->tdbmService , $ partialQuery );
255
+ $ bean ->_constructFromData ($ beanData , $ this ->tdbmService , $ this -> partialQuery );
254
256
}
255
257
256
258
// The first bean is the one containing the main table.
0 commit comments