8000 Revert "minor #10241 [DependencyInjection] made some perf improvement… · symfony/symfony@2f0b355 · GitHub
[go: up one dir, main page]

Skip to content

Commit 2f0b355

Browse files
Revert "minor #10241 [DependencyInjection] made some perf improvements (fabpot)"
This reverts commit 181e460, reversing changes made to ff17493.
1 parent 7a5762c commit 2f0b355

File tree

8 files changed

+104
-57
lines changed

8 files changed

+104
-57
lines changed

src/Symfony/Component/DependencyInjection/Dumper/PhpDumper.php

Lines changed: 31 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -833,18 +833,16 @@ class $class extends $baseClass
833833
*/
834834
private function addConstructor()
835835
{
836-
$parameters = $this->exportParameters($this->container->getParameterBag()->all());
836+
$arguments = $this->container->getParameterBag()->all() ? 'new ParameterBag($this->getDefaultParameters())' : null;
837837

838838
$code = <<<EOF
839839
840-
private static \$parameters = $parameters;
841-
842840
/**
843841
* Constructor.
844842
*/
845843
public function __construct()
846844
{
847-
parent::__construct(new ParameterBag(self::\$parameters));
845+
parent::__construct($arguments);
848846
849847
EOF;
850848

@@ -872,17 +870,23 @@ public function __construct()
872870
*/
873871
private function addFrozenConstructor()
874872
{
875-
$parameters = $this->exportParameters($this->container->getParameterBag()->all());
876-
877873
$code = <<<EOF
878874
879-
private static \$parameters = $parameters;
875+
private \$parameters;
880876
881877
/**
882878
* Constructor.
883879
*/
884880
public function __construct()
885881
{
882+
EOF;
883+
884+
if ($this->container->getParameterBag()->all()) {
885+
$code .= "\n \$this->parameters = \$this->getDefaultParameters();\n";
886+
}
887+
888+
$code .= <<<EOF
889+
886890
\$this->services =
887891
\$this->scopedServices =
888892
\$this->scopeStacks = array();
@@ -990,6 +994,8 @@ private function addDefaultParametersMethod()
990994
return '';
991995
}
992996

997+
$parameters = $this->exportParameters($this->container->getParameterBag()->all());
998+
993999
$code = '';
9941000
if ($this->container->isFrozen()) {
9951001
$code .= <<<EOF
@@ -1001,11 +1007,11 @@ public function getParameter(\$name)
10011007
{
10021008
\$name = strtolower(\$name);
10031009
1004-
if (!(isset(self::\$parameters[\$name]) || array_key_exists(\$name, self::\$parameters))) {
1010+
if (!(isset(\$this->parameters[\$name]) || array_key_exists(\$name, \$this->parameters))) {
10051011
throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', \$name));
10061012
}
10071013
1008-
return self::\$parameters[\$name];
1014+
return \$this->parameters[\$name];
10091015
}
10101016
10111017
/**
@@ -1015,7 +1021,7 @@ public function hasParameter(\$name)
10151021
{
10161022
\$name = strtolower(\$name);
10171023
1018-
return isset(self::\$parameters[\$name]) || array_key_exists(\$name, self::\$parameters);
1024+
return isset(\$this->parameters[\$name]) || array_key_exists(\$name, \$this->parameters);
10191025
}
10201026
10211027
/**
@@ -1032,15 +1038,28 @@ public function setParameter(\$name, \$value)
10321038
public function getParameterBag()
10331039
{
10341040
F438 if (null === \$this->parameterBag) {
1035-
\$this->parameterBag = new FrozenParameterBag(self::\$parameters);
1041+
\$this->parameterBag = new FrozenParameterBag(\$this->parameters);
10361042
}
10371043
10381044
return \$this->parameterBag;
10391045
}
1040-
10411046
EOF;
10421047
}
10431048

1049+
$code .= <<<EOF
1050+
1051+
/**
1052+
* Gets the default parameters.
1053+
*
1054+
* @return array An array of the default parameters
1055+
*/
1056+
protected function getDefaultParameters()
1057+
{
1058+
return $parameters;
1059+
}
1060+
1061+
EOF;
1062+
10441063
return $code;
10451064
}
10461065

src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1-1.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,15 +17,11 @@
1717
*/
1818
class Container extends AbstractContainer
1919
{
20-
private static $parameters = array(
21-
22-
);
23-
2420
/**
2521
* Constructor.
2622
*/
2723
public function __construct()
2824
{
29-
parent::__construct(new ParameterBag(self::$parameters));
25+
parent::__construct();
3026
}
3127
}

src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services1.php

Lines changed: 1 addition & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -16,15 +16,11 @@
1616
*/
1717
class ProjectServiceContainer extends Container
1818
{
19-
private static $parameters = array(
20-
21-
);
22-
2319
/**
2420
* Constructor.
2521
*/
2622
public function __construct()
2723
{
28-
parent::__construct(new ParameterBag(self::$parameters));
24+
parent::__construct();
2925
}
3026
}

src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services10.php

Lines changed: 19 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,16 +16,15 @@
1616
*/
1717
class ProjectServiceContainer extends Container
1818
{
19-
private static $parameters = array(
20-
'empty_value' => '',
21-
'some_string' => '-',
22-
);
19+
private $parameters;
2320

2421
/**
2522
* Constructor.
2623
*/
2724
public function __construct()
2825
{
26+
$this->parameters = $this->getDefaultParameters();
27+
2928
$this->services =
3029
$this->scopedServices =
3130
$this->scopeStacks = array();
@@ -69,11 +68,11 @@ public function getParameter($name)
6968
{
7069
$name = strtolower($name);
7170

72-
if (!(isset(self::$parameters[$name]) || array_key_exists($name, self::$parameters))) {
71+
if (!(isset($this->parameters[$name]) || array_key_exists($name, $this->parameters))) {
7372
throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
7473
}
7574

76-
return self::$parameters[$name];
75+
return $this->parameters[$name];
7776
}
7877

7978
/**
@@ -83,7 +82,7 @@ public function hasParameter($name)
8382
{
8483
$name = strtolower($name);
8584

86-
return isset(self::$parameters[$name]) || array_key_exists($name, self::$parameters);
85+
return isset($this->parameters[$name]) || array_key_exists($name, $this->parameters);
8786
}
8887

8988
/**
@@ -100,9 +99,21 @@ public function setParameter($name, $value)
10099
public function getParameterBag()
101100
{
102101
if (null === $this->parameterBag) {
103-
$this->parameterBag = new FrozenParameterBag(self::$parameters);
102+
$this->parameterBag = new FrozenParameterBag($this->parameters);
104103
}
105104

106105
return $this->parameterBag;
107106
}
107+
/**
108+
* Gets the default parameters.
109+
*
110+
* @return array An array of the default parameters
111+
*/
112+
protected function getDefaultParameters()
113+
{
114+
return array(
115+
'empty_value' => '',
116+
'some_string' => '-',
117+
);
118+
}
108119
}

src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services11.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,9 +16,7 @@
1616
*/
1717
class ProjectServiceContainer extends Container
1818
{
19-
private static $parameters = array(
20-
21-
);
19+
private $parameters;
2220

2321
/**
2422
* Constructor.

src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services8.php

Lines changed: 16 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,22 @@
1616
*/
1717
class ProjectServiceContainer extends Container
1818
{
19-
private static $parameters = array(
19+
/**
20+
* Constructor.
21+
*/
22+
public function __construct()
23+
{
24+
parent::__construct(new ParameterBag($this->getDefaultParameters()));
25+
}
26+
27+
/**
28+
* Gets the default parameters.
29+
*
30+
* @return array An array of the default parameters
31+
*/
32+
protected function getDefaultParameters()
33+
{
34+
return array(
2035
'foo' => '%baz%',
2136
'baz' => 'bar',
2237
'bar' => 'foo is %%foo bar',
@@ -32,12 +47,5 @@ class ProjectServiceContainer extends Container
3247
7 => 'null',
3348
),
3449
);
35-
36-
/**
37-
* Constructor.
38-
*/
39-
public function __construct()
40-
{
41-
parent::__construct(new ParameterBag(self::$parameters));
4250
}
4351
}

src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9.php

Lines changed: 15 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -16,18 +16,12 @@
1616
*/
1717
class ProjectServiceContainer extends Container
1818
{
19-
private static $parameters = array(
20-
'baz_class' => 'BazClass',
21-
'foo_class' => 'Bar\\FooClass',
22-
'foo' => 'bar',
23-
);
24-
2519
/**
2620
* Constructor.
2721
*/
2822
public function __construct()
2923
{
30-
parent::__construct(new ParameterBag(self::$parameters));
24+
parent::__construct(new ParameterBag($this->getDefaultParameters()));
3125
$this->methodMap = array(
3226
'bar' => 'getBarService',
3327
'baz' => 'getBazService',
@@ -390,4 +384,18 @@ protected function getNewFactoryService()
390384

391385
return $instance;
392386
}
387+
388+
/**
389+
* Gets the default parameters.
390+
*
391+
* @return array An array of the default parameters
392+
*/
393+
protected function getDefaultParameters()
394+
{
395+
return array(
396+
'baz_class' => 'BazClass',
397+
'foo_class' => 'Bar\\FooClass',
398+
'foo' => 'bar',
399+
);
400+
}
393401
}

src/Symfony/Component/DependencyInjection/Tests/Fixtures/php/services9_compiled.php

Lines changed: 20 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -16,17 +16,15 @@
1616
*/
1717
class ProjectServiceContainer extends Container
1818
{
19-
private static $parameters = array(
20-
'baz_class' => 'BazClass',
21-
'foo_class' => 'Bar\\FooClass',
22-
'foo' => 'bar',
23-
);
19+
private $parameters;
2420

2521
/**
2622
* Constructor.
2723
*/
2824
public function __construct()
2925
{
26+
$this->parameters = $this->getDefaultParameters();
27+
3028
$this->services =
3129
$this->scopedServices =
3230
$this->scopeStacks = array();
@@ -336,11 +334,11 @@ public function getParameter($name)
336334
{
337335
$name = strtolower($name);
338336

339-
if (!(isset(self::$parameters[$name]) || array_key_exists($name, self::$parameters))) {
337+
if (!(isset($this->parameters[$name]) || array_key_exists($name, $this->parameters))) {
340338
throw new InvalidArgumentException(sprintf('The parameter "%s" must be defined.', $name));
341339
}
342340

343-
return self::$parameters[$name];
341+
return $this->parameters[$name];
344342
}
345343

346344
/**
@@ -350,7 +348,7 @@ public function hasParameter($name)
350348
{
351349
$name = strtolower($name);
352350

353-
return isset(self::$parameters[$name]) || array_key_exists($name, self::$parameters);
351+
return isset($this->parameters[$name]) || array_key_exists($name, $this->parameters);
354352
}
355353

356354
/**
@@ -367,9 +365,22 @@ public function setParameter($name, $value)
367365
public function getParameterBag()
368366
{
369367
if (null === $this->parameterBag) {
370-
$this->parameterBag = new FrozenParameterBag(self::$parameters);
368+
$this->parameterBag = new FrozenParameterBag($this->parameters);
371369
}
372370

373371
return $this->parameterBag;
374372
}
373+
/**
374+
* Gets the default parameters.
375+
*
376+
* @return array An array of the default parameters
377+
*/
378+
protected function getDefaultParameters()
379+
{
380+
return array(
381+
'baz_class' => 'BazClass',
382+
'foo_class' => 'Bar\\FooClass',
383+
'foo' => 'bar',
384+
);
385+
}
375386
}

0 commit comments

Comments
 (0)
0