Skip to content

Commit e3c82aa

Browse files
committed
ContainerBuilder: setClassName() & getClassName() moved to Compiler (BC break)
1 parent 242a0b3 commit e3c82aa

File tree

3 files changed

+20
-5
lines changed

3 files changed

+20
-5
lines changed

src/DI/Compiler.php

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,9 @@ class Compiler
3030
/** @var string[] of file names */
3131
private $dependencies = [];
3232

33+
/** @var string */
34+
private $className = 'Container';
35+
3336
/** @var array reserved section names */
3437
private static $reserved = ['services' => 1, 'parameters' => 1];
3538

@@ -74,6 +77,16 @@ public function getContainerBuilder()
7477
}
7578

7679

80+
/**
81+
* @return self
82+
*/
83+
public function setClassName($className)
84+
{
85+
$this->className = $className;
86+
return $this;
87+
}
88+
89+
7790
/**
7891
* Adds new configuration.
7992
* @return self
@@ -138,7 +151,7 @@ public function compile(array $config = NULL, $className = NULL, $parentName = N
138151
$this->processParameters();
139152
$this->processExtensions();
140153
$this->processServices();
141-
$classes = $this->generateCode($className, $parentName);
154+
$classes = $this->generateCode($className ?: $this->className, $parentName);
142155
return func_num_args()
143156
? implode("\n\n\n", $classes) // back compatiblity
144157
: $classes;

src/DI/ContainerBuilder.php

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ class ContainerBuilder
2828
public $parameters = [];
2929

3030
/** @var string */
31-
private $className = 'Container';
31+
private $className;
3232

3333
/** @var ServiceDefinition[] */
3434
private $definitions = [];
@@ -174,20 +174,22 @@ public function getAliases()
174174

175175

176176
/**
177-
* @return self
177+
* @deprecated
178178
*/
179179
public function setClassName($name)
180180
{
181+
trigger_error(__METHOD__ . ' has been deprecated', E_USER_DEPRECATED);
181182
$this->className = (string) $name;
182183
return $this;
183184
}
184185

185186

186187
/**
187-
* @return string
188+
* @deprecated
188189
*/
189190
public function getClassName()
190191
{
192+
trigger_error(__METHOD__ . ' has been deprecated', E_USER_DEPRECATED);
191193
return $this->className;
192194
}
193195

src/DI/ContainerLoader.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -109,7 +109,7 @@ private function isExpired($file)
109109
protected function generate($class, $generator)
110110
{
111111
$compiler = new Compiler;
112-
$compiler->getContainerBuilder()->setClassName($class);
112+
$compiler->setClassName($class);
113113
$code = call_user_func_array($generator, [& $compiler]);
114114
$code = $code ?: implode("\n\n\n", $compiler->compile());
115115
$files = $compiler->getDependencies();

0 commit comments

Comments
 (0)