1414use Symfony \Bundle \FrameworkBundle \Controller \AbstractController ;
1515use Symfony \Bundle \MakerBundle \Exception \RuntimeCommandException ;
1616use Symfony \Bundle \MakerBundle \Util \ClassNameDetails ;
17+ use Symfony \Bundle \MakerBundle \Util \NamespacesHelper ;
1718use Symfony \Bundle \MakerBundle \Util \PhpCompatUtil ;
1819use Symfony \Bundle \MakerBundle \Util \TemplateComponentGenerator ;
1920
@@ -26,15 +27,16 @@ class Generator
2627 private GeneratorTwigHelper $ twigHelper ;
2728 private array $ pendingOperations = [];
2829 private ?TemplateComponentGenerator $ templateComponentGenerator ;
30+ private NamespacesHelper $ namespacesHelper ;
2931
3032 public function __construct (
3133 private FileManager $ fileManager ,
32- private string $ namespacePrefix ,
34+ NamespacesHelper $ namespacesHelper ,
3335 PhpCompatUtil $ phpCompatUtil = null ,
3436 TemplateComponentGenerator $ templateComponentGenerator = null ,
3537 ) {
3638 $ this ->twigHelper = new GeneratorTwigHelper ($ fileManager );
37- $ this ->namespacePrefix = trim ( $ namespacePrefix , '\\' ) ;
39+ $ this ->namespacesHelper = $ namespacesHelper ;
3840
3941 if (null !== $ phpCompatUtil ) {
4042 trigger_deprecation ('symfony/maker-bundle ' , 'v1.44.0 ' , 'Initializing Generator while providing an instance of PhpCompatUtil is deprecated. ' );
@@ -136,7 +138,7 @@ public function getFileContentsForPendingOperation(string $targetPath): string
136138 */
137139 public function createClassNameDetails (string $ name , string $ namespacePrefix , string $ suffix = '' , string $ validationErrorMessage = '' ): ClassNameDetails
138140 {
139- $ fullNamespacePrefix = $ this ->namespacePrefix .'\\' .$ namespacePrefix ;
141+ $ fullNamespacePrefix = $ this ->namespacesHelper -> getRootNamespace () .'\\' .$ namespacePrefix ;
140142 if ('\\' === $ name [0 ]) {
141143 // class is already "absolute" - leave it alone (but strip opening \)
142144 $ className = substr ($ name , 1 );
@@ -211,9 +213,14 @@ public function writeChanges()
211213 $ this ->pendingOperations = [];
212214 }
213215
216+ public function getNamespacesHelper (): NamespacesHelper
217+ {
218+ return $ this ->namespacesHelper ;
219+ }
220+
214221 public function getRootNamespace (): string
215222 {
216- return $ this ->namespacePrefix ;
223+ return $ this ->namespacesHelper -> getRootNamespace () ;
217224 }
218225
219226 public function generateController (string $ controllerClassName , string $ controllerTemplatePath , array $ parameters = []): string
0 commit comments