@@ -27,9 +27,24 @@ final class Driver implements DriverInterface
2727 /** @var ManagerRegistry */
2828 private $ managerRegistry ;
2929
30- public function __construct (ManagerRegistry $ managerRegistry )
31- {
30+ /** @var bool */
31+ private $ fetchJoinCollection ;
32+
33+ /** @var bool|null */
34+ private $ useOutputWalkers ;
35+
36+ /**
37+ * @param bool $fetchJoinCollection {@see \Sylius\Bundle\GridBundle\Doctrine\ORM\DataSource::__construct}
38+ * @param bool|null $useOutputWalkers {@see \Sylius\Bundle\GridBundle\Doctrine\ORM\DataSource::__construct}
39+ */
40+ public function __construct (
41+ ManagerRegistry $ managerRegistry ,
42+ bool $ fetchJoinCollection = false ,
43+ ?bool $ useOutputWalkers = false
44+ ) {
3245 $ this ->managerRegistry = $ managerRegistry ;
46+ $ this ->fetchJoinCollection = $ fetchJoinCollection ;
47+ $ this ->useOutputWalkers = $ useOutputWalkers ;
3348 }
3449
3550 public function getDataSource (array $ configuration , Parameters $ parameters ): DataSourceInterface
@@ -44,8 +59,11 @@ public function getDataSource(array $configuration, Parameters $parameters): Dat
4459 /** @var EntityRepository $repository */
4560 $ repository = $ manager ->getRepository ($ configuration ['class ' ]);
4661
62+ $ fetchJoinCollection = $ configuration ['pagination ' ]['fetch_join_collection ' ] ?? $ this ->fetchJoinCollection ;
63+ $ useOutputWalkers = $ configuration ['pagination ' ]['use_output_walkers ' ] ?? $ this ->useOutputWalkers ;
64+
4765 if (!isset ($ configuration ['repository ' ]['method ' ])) {
48- return new DataSource ($ repository ->createQueryBuilder ('o ' ));
66+ return new DataSource ($ repository ->createQueryBuilder ('o ' ), $ fetchJoinCollection , $ useOutputWalkers );
4967 }
5068
5169 $ arguments = isset ($ configuration ['repository ' ]['arguments ' ]) ? array_values ($ configuration ['repository ' ]['arguments ' ]) : [];
@@ -54,9 +72,9 @@ public function getDataSource(array $configuration, Parameters $parameters): Dat
5472 $ queryBuilder = $ method [0 ];
5573 $ method = $ method [1 ];
5674
57- return new DataSource ($ queryBuilder ->$ method (...$ arguments ));
75+ return new DataSource ($ queryBuilder ->$ method (...$ arguments ), $ fetchJoinCollection , $ useOutputWalkers );
5876 }
5977
60- return new DataSource ($ repository ->$ method (...$ arguments ));
78+ return new DataSource ($ repository ->$ method (...$ arguments ), $ fetchJoinCollection , $ useOutputWalkers );
6179 }
6280}
0 commit comments