Skip to content

Commit 06af088

Browse files
committed
ContainerBuilder: added className property
1 parent 3dc3962 commit 06af088

File tree

1 file changed

+26
-3
lines changed

1 file changed

+26
-3
lines changed

src/DI/ContainerBuilder.php

Lines changed: 26 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)