merged branch zakharovvi/dependencyinjection_phpdumper_namespace (PR #8119)
This PR was submitted for the 2.3 branch but it was merged into the master branch instead (closes #8119). Discussion ---------- [DependencyInjection] add namespace parameter to PhpDumper::dump | Q | A | ------------- | --- | Bug fix? | no | New feature? | yes | BC breaks? | no | Deprecations? | no | Tests pass? | yes | Fixed tickets | - | License | MIT | Doc PR | - Commits ------- 97320a5 [DependencyInjection] add namespace parameter to PhpDumper::dump
This commit is contained in:
commit
6f77195622
@ -86,6 +86,7 @@ class PhpDumper extends Dumper
|
||||
*
|
||||
* * class: The class name
|
||||
* * base_class: The base class name
|
||||
* * namespace: The class namespace
|
||||
*
|
||||
* @param array $options An array of options
|
||||
*
|
||||
@ -98,9 +99,10 @@ class PhpDumper extends Dumper
|
||||
$options = array_merge(array(
|
||||
'class' => 'ProjectServiceContainer',
|
||||
'base_class' => 'Container',
|
||||
'namespace' => '',
|
||||
), $options);
|
||||
|
||||
$code = $this->startClass($options['class'], $options['base_class']);
|
||||
$code = $this->startClass($options['class'], $options['base_class'], $options['namespace']);
|
||||
|
||||
if ($this->container->isFrozen()) {
|
||||
$code .= $this->addFrozenConstructor();
|
||||
@ -703,16 +705,18 @@ EOF;
|
||||
*
|
||||
* @param string $class Class name
|
||||
* @param string $baseClass The name of the base class
|
||||
* @param string $namespace The class namespace
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
private function startClass($class, $baseClass)
|
||||
private function startClass($class, $baseClass, $namespace)
|
||||
{
|
||||
$bagClass = $this->container->isFrozen() ? 'use Symfony\Component\DependencyInjection\ParameterBag\FrozenParameterBag;' : 'use Symfony\Component\DependencyInjection\ParameterBag\\ParameterBag;';
|
||||
$namespaceLine = $namespace ? "namespace $namespace;\n" : '';
|
||||
|
||||
return <<<EOF
|
||||
<?php
|
||||
|
||||
$namespaceLine
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\DependencyInjection\Container;
|
||||
use Symfony\Component\DependencyInjection\Exception\InactiveScopeException;
|
||||
|
@ -31,7 +31,7 @@ class PhpDumperTest extends \PHPUnit_Framework_TestCase
|
||||
$dumper = new PhpDumper($container = new ContainerBuilder());
|
||||
|
||||
$this->assertStringEqualsFile(self::$fixturesPath.'/php/services1.php', $dumper->dump(), '->dump() dumps an empty container as an empty PHP class');
|
||||
$this->assertStringEqualsFile(self::$fixturesPath.'/php/services1-1.php', $dumper->dump(array('class' => 'Container', 'base_class' => 'AbstractContainer')), '->dump() takes a class and a base_class options');
|
||||
$this->assertStringEqualsFile(self::$fixturesPath.'/php/services1-1.php', $dumper->dump(array('class' => 'Container', 'base_class' => 'AbstractContainer', 'namespace' => 'Symfony\Component\DependencyInjection\Dump')), '->dump() takes a class and a base_class options');
|
||||
|
||||
$container = new ContainerBuilder();
|
||||
new PhpDumper($container);
|
||||
|
@ -1,4 +1,5 @@
|
||||
<?php
|
||||
namespace Symfony\Component\DependencyInjection\Dump;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Symfony\Component\DependencyInjection\Container;
|
||||
|
Reference in New Issue
Block a user