2828use Symfony \Bundle \MakerBundle \Renderer \FormTypeRenderer ;
2929use Symfony \Bundle \MakerBundle \Str ;
3030use Symfony \Bundle \MakerBundle \Util \ClassSource \Model \ClassData ;
31- use Symfony \Bundle \MakerBundle \Util \UseStatementGenerator ;
3231use Symfony \Bundle \MakerBundle \Validator ;
3332use Symfony \Bundle \TwigBundle \TwigBundle ;
3433use Symfony \Component \Console \Command \Command ;
@@ -132,11 +131,6 @@ public function generate(InputInterface $input, ConsoleStyle $io, Generator $gen
132131 ];
133132 }
134133
135- $ controllerClassData = ClassData::create (
136- class: sprintf ('App\Controller\%sController ' , $ this ->controllerClassName ),
137- extendsClass: AbstractController::class,
138- );
139-
140134 $ controllerClassDetails = $ generator ->createClassNameDetails (
141135 $ this ->controllerClassName ,
142136 'Controller \\' ,
@@ -153,6 +147,20 @@ class: sprintf('App\Controller\%sController', $this->controllerClassName),
153147 ++$ iter ;
154148 } while (class_exists ($ formClassDetails ->getFullName ()));
155149
150+ $ controllerClassData = ClassData::create (
151+ class: sprintf ('App\Controller\%sController ' , $ this ->controllerClassName ),
152+ extendsClass: AbstractController::class,
153+ useStatements: [
154+ $ entityClassDetails ->getFullName (),
155+ $ formClassDetails ->getFullName (),
156+ $ repositoryClassName ,
157+ AbstractController::class,
158+ Request::class,
159+ Response::class,
160+ Route::class,
161+ ],
162+ );
163+
156164 $ entityVarPlural = lcfirst ($ this ->inflector ->pluralize ($ entityClassDetails ->getShortName ()));
157165 $ entityVarSingular = lcfirst ($ this ->inflector ->singularize ($ entityClassDetails ->getShortName ()));
158166
@@ -162,26 +170,15 @@ class: sprintf('App\Controller\%sController', $this->controllerClassName),
162170 $ routeName = Str::asRouteName ($ controllerClassDetails ->getRelativeNameWithoutSuffix ());
163171 $ templatesPath = Str::asFilePath ($ controllerClassDetails ->getRelativeNameWithoutSuffix ());
164172
165- $ useStatements = new UseStatementGenerator ([
166- $ entityClassDetails ->getFullName (),
167- $ formClassDetails ->getFullName (),
168- $ repositoryClassName ,
169- AbstractController::class,
170- Request::class,
171- Response::class,
172- Route::class,
173- ]);
174-
175173 if (EntityManagerInterface::class !== $ repositoryClassName ) {
176- $ useStatements ->addUseStatement (EntityManagerInterface::class);
174+ $ controllerClassData ->addUseStatement (EntityManagerInterface::class);
177175 }
178176
179177 $ generator ->generateController (
180178 $ controllerClassDetails ->getFullName (),
181179 'crud/controller/Controller.tpl.php ' ,
182180 array_merge ([
183181 'class_data ' => $ controllerClassData ,
184- 'use_statements ' => $ useStatements ,
185182 'entity_class_name ' => $ entityClassDetails ->getShortName (),
186183 'form_class_name ' => $ formClassDetails ->getShortName (),
187184 'route_path ' => Str::asRoutePath ($ controllerClassDetails ->getRelativeNameWithoutSuffix ()),
@@ -252,27 +249,24 @@ class: sprintf('App\Controller\%sController', $this->controllerClassName),
252249 $ testClassData = ClassData::create (
253250 class: sprintf ('App\Tests\Controller\%sControllerTest ' , $ entityClassDetails ->getRelativeNameWithoutSuffix ()),
254251 extendsClass: WebTestCase::class,
252+ useStatements: [
253+ $ entityClassDetails ->getFullName (),
254+ WebTestCase::class,
255+ KernelBrowser::class,
256+ $ repositoryClassName ,
257+ EntityRepository::class,
258+ ],
255259 );
256260
257- $ useStatements = new UseStatementGenerator ([
258- $ entityClassDetails ->getFullName (),
259- WebTestCase::class,
260- KernelBrowser::class,
261- $ repositoryClassName ,
262- ]);
263-
264- $ useStatements ->addUseStatement (EntityRepository::class);
265-
266261 if (EntityManagerInterface::class !== $ repositoryClassName ) {
267- $ useStatements ->addUseStatement (EntityManagerInterface::class);
262+ $ testClassData ->addUseStatement (EntityManagerInterface::class);
268263 }
269264
270265 $ generator ->generateClass (
271266 $ testClassData ->fullClassName ,
272267 'crud/test/Test.EntityManager.tpl.php ' ,
273268 [
274269 'class_data ' => $ testClassData ,
275- 'use_statements ' => $ useStatements ,
276270 'entity_full_class_name ' => $ entityClassDetails ->getFullName (),
277271 'entity_class_name ' => $ entityClassDetails ->getShortName (),
278272 'entity_var_singular ' => $ entityVarSingular ,
0 commit comments