@@ -95,9 +95,10 @@ public function dump(array $classes, string $middlewareFqcn): string
9595 // Phase 2: Generate Properties and Setup
9696 $ propertiesCode = '' ;
9797 $ setupCode = '' ;
98+
9899 foreach ($ normalizers as $ index => $ info ) {
99- $ propertiesCode .= " private readonly \\{$ info ['normalizer ' ]} \$n $ index; \n" ;
100- $ setupCode .= " \$this->n $ index = \$metadataFactory->metadata( \\{$ info ['class ' ]}::class)->properties[' {$ info ['propertyName ' ]}']->normalizer; \n" ;
100+ $ propertiesCode .= "private readonly \\{$ info ['normalizer ' ]} \$n $ index; \n" ;
101+ $ setupCode .= "\$this->n $ index = \$metadataFactory->metadata( \\{$ info ['class ' ]}::class)->properties[' {$ info ['propertyName ' ]}']->normalizer; \n" ;
101102 }
102103
103104 // Phase 3: Generate Class Methods
@@ -108,8 +109,8 @@ public function dump(array $classes, string $middlewareFqcn): string
108109 foreach ($ allClasses as $ class => $ metadata ) {
109110 $ shortName = str_replace ('\\' , '' , $ class );
110111
111- $ hydrateCases .= " \\$ class::class => \$this->hydrate $ shortName( \$data, \$context, \$stack), \n" ;
112- $ extractCases .= " \\$ class::class => \$this->extract $ shortName( \$object, \$context, \$stack), \n" ;
112+ $ hydrateCases .= "\\$ class::class => \$this->hydrate $ shortName( \$data, \$context, \$stack), \n" ;
113+ $ extractCases .= "\\$ class::class => \$this->extract $ shortName( \$object, \$context, \$stack), \n" ;
113114
114115 $ methods .= $ this ->generateClassMethods ($ metadata , $ shortName , $ normalizerMap );
115116 }
@@ -142,10 +143,11 @@ final class $middlewareClassName implements Middleware
142143{
143144 private array \$callStack = [];
144145
145- $ propertiesCode
146+ {$ this ->padLeft ($ propertiesCode , 1 )}
147+
146148 public function __construct(MetadataFactory \$metadataFactory)
147149 {
148- $ setupCode
150+ { $ this -> padLeft ( $ setupCode, 2 )}
149151 }
150152
151153 public function hydrate(ClassMetadata \$metadata, array \$data, array \$context, Stack \$stack): object
@@ -162,7 +164,7 @@ public function hydrate(ClassMetadata \$metadata, array \$data, array \$context,
162164 private function doHydrate(string \$class, array \$data, array \$context, Stack \$stack): object|null
163165 {
164166 return match ( \$class) {
165- $ hydrateCases
167+ { $ this -> padLeft ( $ hydrateCases, 3 )}
166168 default => null,
167169 };
168170 }
@@ -193,14 +195,15 @@ private function doExtract(object \$object, array \$context, Stack \$stack): arr
193195
194196 try {
195197 return match ( \$object::class) {
196- $ extractCases default => null,
198+ {$ this ->padLeft ($ extractCases , 4 )}
199+ default => null,
197200 };
198201 } finally {
199202 \\array_pop( \$this->callStack);
200203 }
201204 }
202205
203- $ methods
206+ { $ this -> padLeft ( $ methods, 1 )}
204207}
205208PHP ;
206209 }
@@ -211,6 +214,10 @@ private function generateClassMethods(ClassMetadata $metadata, string $shortName
211214
212215 $ constructor = $ metadata ->reflection ->getConstructor ();
213216
217+ if ($ constructor === null ) {
218+ dd ($ metadata ->className );
219+ }
220+
214221 $ befores = [];
215222 $ map = [];
216223
@@ -225,13 +232,13 @@ private function generateClassMethods(ClassMetadata $metadata, string $shortName
225232 }
226233
227234 $ methods = <<<PHP
228- private function hydrate$ shortName(array \$data, array \$context, Stack \$stack): \\ $ targetClass
229- {
230- {$ this ->padLeft (implode ("\n" , $ befores ), 2 )}
231- return new \\ $ targetClass(
232- {$ this ->padLeft (implode (", \n" , $ map ), 3 )}
233- );
234- }
235+ private function hydrate $ shortName(array \$data, array \$context, Stack \$stack): \\ $ targetClass
236+ {
237+ {$ this ->padLeft (implode ("\n" , $ befores ), 1 )}
238+ return new \\ $ targetClass(
239+ {$ this ->padLeft (implode (", \n" , $ map ), 2 )}
240+ );
241+ }
235242
236243PHP ;
237244
@@ -249,13 +256,13 @@ private function hydrate$shortName(array \$data, array \$context, Stack \$stack)
249256 }
250257
251258 $ methods .= <<<PHP
252- private function extract$ shortName( \$object, array \$context, Stack \$stack): array
253- {
254- {$ this ->padLeft (implode ("\n" , $ befores ), 2 )}
255- return [
256- {$ this ->padLeft (implode ("\n" , $ map ), 3 )}
257- ];
258- }
259+ private function extract $ shortName( \$object, array \$context, Stack \$stack): array
260+ {
261+ {$ this ->padLeft (implode ("\n" , $ befores ), 1 )}
262+ return [
263+ {$ this ->padLeft (implode ("\n" , $ map ), 2 )}
264+ ];
265+ }
259266
260267PHP ;
261268
0 commit comments