2525 */
2626class AutomaticQueryBuilder implements QueryBuilderProcessorInterface
2727{
28- /** @var EntityManagerInterface */
29- private $ em ;
28+ private EntityManagerInterface $ em ;
29+ private ClassMetadata $ metadata ;
30+ private string $ entityShortName ;
3031
31- /** @var ClassMetadata */
32- private $ metadata ;
32+ /** @var class-string */
33+ private string $ entityName ;
3334
34- /** @var string */
35- private $ entityName ;
35+ /** @var array< string, string[]> */
36+ private array $ selectColumns = [] ;
3637
37- /** @var string */
38- private $ entityShortName ;
38+ /** @var array< string, string[]> */
39+ private array $ joins = [] ;
3940
40- /** @var array */
41- private $ selectColumns = [];
42-
43- /** @var array */
44- private $ joins = [];
45-
46- /**
47- * AutomaticQueryBuilder constructor.
48- */
4941 public function __construct (EntityManagerInterface $ em , ClassMetadata $ metadata )
5042 {
5143 $ this ->em = $ em ;
@@ -55,7 +47,7 @@ public function __construct(EntityManagerInterface $em, ClassMetadata $metadata)
5547 $ this ->entityShortName = mb_strtolower ($ this ->metadata ->getReflectionClass ()->getShortName ());
5648 }
5749
58- public function process (QueryBuilder $ builder , DataTableState $ state )
50+ public function process (QueryBuilder $ builder , DataTableState $ state ): void
5951 {
6052 if (empty ($ this ->selectColumns ) && empty ($ this ->joins )) {
6153 foreach ($ state ->getDataTable ()->getColumns () as $ column ) {
@@ -67,7 +59,7 @@ public function process(QueryBuilder $builder, DataTableState $state)
6759 $ this ->setJoins ($ builder );
6860 }
6961
70- protected function processColumn (AbstractColumn $ column )
62+ protected function processColumn (AbstractColumn $ column ): void
7163 {
7264 $ field = $ column ->getField ();
7365
@@ -80,7 +72,7 @@ protected function processColumn(AbstractColumn $column)
8072 }
8173 }
8274
83- private function addSelectColumns (AbstractColumn $ column , string $ field )
75+ private function addSelectColumns (AbstractColumn $ column , string $ field ): void
8476 {
8577 $ currentPart = $ this ->entityShortName ;
8678 $ currentAlias = $ currentPart ;
@@ -111,7 +103,7 @@ private function addSelectColumns(AbstractColumn $column, string $field)
111103 }
112104 }
113105
114- private function addSelectColumn ($ columnTableName , $ data )
106+ private function addSelectColumn (string $ columnTableName , string $ data ): void
115107 {
116108 if (isset ($ this ->selectColumns [$ columnTableName ])) {
117109 if (!in_array ($ data , $ this ->selectColumns [$ columnTableName ], true )) {
@@ -120,18 +112,16 @@ private function addSelectColumn($columnTableName, $data)
120112 } else {
121113 $ this ->selectColumns [$ columnTableName ][] = $ data ;
122114 }
123-
124- return $ this ;
125115 }
126116
127- private function getIdentifier (ClassMetadata $ metadata )
117+ private function getIdentifier (ClassMetadata $ metadata ): string
128118 {
129119 $ identifiers = $ metadata ->getIdentifierFieldNames ();
130120
131121 return array_shift ($ identifiers );
132122 }
133123
134- private function setIdentifierFromAssociation (string $ association , string $ key , ClassMetadata $ metadata )
124+ private function setIdentifierFromAssociation (string $ association , string $ key , ClassMetadata $ metadata ): ClassMetadata
135125 {
136126 $ targetEntityClass = $ metadata ->getAssociationTargetClass ($ key );
137127
@@ -142,7 +132,7 @@ private function setIdentifierFromAssociation(string $association, string $key,
142132 return $ targetMetadata ;
143133 }
144134
145- private function setSelectFrom (QueryBuilder $ qb )
135+ private function setSelectFrom (QueryBuilder $ qb ): void
146136 {
147137 foreach ($ this ->selectColumns as $ key => $ value ) {
148138 if (false === empty ($ key )) {
@@ -151,16 +141,12 @@ private function setSelectFrom(QueryBuilder $qb)
151141 $ qb ->addSelect ($ value );
152142 }
153143 }
154-
155- return $ this ;
156144 }
157145
158- private function setJoins (QueryBuilder $ qb )
146+ private function setJoins (QueryBuilder $ qb ): void
159147 {
160148 foreach ($ this ->joins as $ key => $ value ) {
161149 $ qb ->{$ value ['type ' ]}($ key , $ value ['alias ' ]);
162150 }
163-
164- return $ this ;
165151 }
166152}
0 commit comments