@@ -27,6 +27,9 @@ class ContainerBuilder extends Nette\Object
2727 /** @var array */
2828 public $ parameters = array ();
2929
30+ /** @var string */
31+ private $ className = 'Container ' ;
32+
3033 /** @var ServiceDefinition[] */
3134 private $ definitions = array ();
3235
@@ -149,6 +152,25 @@ public function getAliases()
149152 }
150153
151154
155+ /**
156+ * @return self
157+ */
158+ public function setClassName ($ name )
159+ {
160+ $ this ->className = (string ) $ name ;
161+ return $ this ;
162+ }
163+
164+
165+ /**
166+ * @return string
167+ */
168+ public function getClassName ()
169+ {
170+ return $ this ->className ;
171+ }
172+
173+
152174 /********************* class resolving ****************d*g**/
153175
154176
@@ -507,12 +529,13 @@ public function getDependencies()
507529 * Generates PHP classes. First class is the container.
508530 * @return Nette\PhpGenerator\ClassType[]
509531 */
510- public function generateClasses ($ className = ' Container ' , $ parentName = NULL )
532+ public function generateClasses ($ className = NULL , $ parentName = NULL )
511533 {
512534 $ this ->prepareClassList ();
513535
514536 $ this ->generatedClasses = array ();
515- $ containerClass = $ this ->generatedClasses [] = new Nette \PhpGenerator \ClassType ($ className );
537+ $ this ->className = $ className ?: $ this ->className ;
538+ $ containerClass = $ this ->generatedClasses [] = new Nette \PhpGenerator \ClassType ($ this ->className );
516539 $ containerClass ->setExtends ($ parentName ?: 'Nette\DI\Container ' );
517540 $ containerClass ->addMethod ('__construct ' )
518541 ->addBody ('parent::__construct(?); ' , array ($ this ->parameters ));
@@ -602,7 +625,7 @@ private function generateService($name)
602625 }
603626
604627 $ factoryClass = $ this ->generatedClasses [] = new Nette \PhpGenerator \ClassType ;
605- $ factoryClass ->setName (str_replace (array ('\\' , '. ' ), '_ ' , "{$ this ->generatedClasses [ 0 ]-> getName () }_ {$ def ->getImplement ()}Impl_ {$ name }" ))
628+ $ factoryClass ->setName (str_replace (array ('\\' , '. ' ), '_ ' , "{$ this ->className }_ {$ def ->getImplement ()}Impl_ {$ name }" ))
606629 ->addImplement ($ def ->getImplement ())
607630 ->setFinal (TRUE );
608631
0 commit comments