do not dump leading backslashes in class names
This commit is contained in:
parent
e60795691c
commit
ad6cb10e63
@ -165,7 +165,13 @@ class GraphvizDumper extends Dumper
|
|||||||
$container = $this->cloneContainer();
|
$container = $this->cloneContainer();
|
||||||
|
|
||||||
foreach ($container->getDefinitions() as $id => $definition) {
|
foreach ($container->getDefinitions() as $id => $definition) {
|
||||||
$nodes[$id] = array('class' => str_replace('\\', '\\\\', $this->container->getParameterBag()->resolveValue($definition->getClass())), 'attributes' => array_merge($this->options['node.definition'], array('style' => ContainerInterface::SCOPE_PROTOTYPE !== $definition->getScope() ? 'filled' : 'dotted')));
|
$class = $definition->getClass();
|
||||||
|
|
||||||
|
if ('\\' === substr($class, 0, 1)) {
|
||||||
|
$class = substr($class, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$nodes[$id] = array('class' => str_replace('\\', '\\\\', $this->container->getParameterBag()->resolveValue($class)), 'attributes' => array_merge($this->options['node.definition'], array('style' => ContainerInterface::SCOPE_PROTOTYPE !== $definition->getScope() ? 'filled' : 'dotted')));
|
||||||
|
|
||||||
$container->setDefinition($id, new Definition('stdClass'));
|
$container->setDefinition($id, new Definition('stdClass'));
|
||||||
}
|
}
|
||||||
|
@ -358,7 +358,13 @@ class PhpDumper extends Dumper
|
|||||||
*/
|
*/
|
||||||
private function addServiceInstance($id, $definition)
|
private function addServiceInstance($id, $definition)
|
||||||
{
|
{
|
||||||
$class = $this->dumpValue($definition->getClass());
|
$class = $definition->getClass();
|
||||||
|
|
||||||
|
if ('\\' === substr($class, 0, 1)) {
|
||||||
|
$class = substr($class, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$class = $this->dumpValue($class);
|
||||||
|
|
||||||
if (0 === strpos($class, "'") && !preg_match('/^\'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) {
|
if (0 === strpos($class, "'") && !preg_match('/^\'[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*(\\\{2}[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*)*\'$/', $class)) {
|
||||||
throw new InvalidArgumentException(sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id));
|
throw new InvalidArgumentException(sprintf('"%s" is not a valid class name for the "%s" service.', $class, $id));
|
||||||
@ -539,7 +545,7 @@ class PhpDumper extends Dumper
|
|||||||
if ($definition->isSynthetic()) {
|
if ($definition->isSynthetic()) {
|
||||||
$return[] = '@throws RuntimeException always since this service is expected to be injected dynamically';
|
$return[] = '@throws RuntimeException always since this service is expected to be injected dynamically';
|
||||||
} elseif ($class = $definition->getClass()) {
|
} elseif ($class = $definition->getClass()) {
|
||||||
$return[] = sprintf('@return %s A %s instance.', 0 === strpos($class, '%') ? 'object' : '\\'.$class, $class);
|
$return[] = sprintf('@return %s A %s instance.', 0 === strpos($class, '%') ? 'object' : '\\'.ltrim($class, '\\'), ltrim($class, '\\'));
|
||||||
} elseif ($definition->getFactoryClass()) {
|
} elseif ($definition->getFactoryClass()) {
|
||||||
$return[] = sprintf('@return object An instance returned by %s::%s().', $definition->getFactoryClass(), $definition->getFactoryMethod());
|
$return[] = sprintf('@return object An instance returned by %s::%s().', $definition->getFactoryClass(), $definition->getFactoryMethod());
|
||||||
} elseif ($definition->getFactoryService()) {
|
} elseif ($definition->getFactoryService()) {
|
||||||
|
@ -113,8 +113,12 @@ class XmlDumper extends Dumper
|
|||||||
if (null !== $id) {
|
if (null !== $id) {
|
||||||
$service->setAttribute('id', $id);
|
$service->setAttribute('id', $id);
|
||||||
}
|
}
|
||||||
if ($definition->getClass()) {
|
if ($class = $definition->getClass()) {
|
||||||
$service->setAttribute('class', $definition->getClass());
|
if ('\\' === substr($class, 0, 1)) {
|
||||||
|
$class = substr($class, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$service->setAttribute('class', $class);
|
||||||
}
|
}
|
||||||
if ($definition->getFactoryMethod()) {
|
if ($definition->getFactoryMethod()) {
|
||||||
$service->setAttribute('factory-method', $definition->getFactoryMethod());
|
$service->setAttribute('factory-method', $definition->getFactoryMethod());
|
||||||
|
@ -63,8 +63,12 @@ class YamlDumper extends Dumper
|
|||||||
private function addService($id, $definition)
|
private function addService($id, $definition)
|
||||||
{
|
{
|
||||||
$code = " $id:\n";
|
$code = " $id:\n";
|
||||||
if ($definition->getClass()) {
|
if ($class = $definition->getClass()) {
|
||||||
$code .= sprintf(" class: %s\n", $definition->getClass());
|
if ('\\' === substr($class, 0, 1)) {
|
||||||
|
$class = substr($class, 1);
|
||||||
|
}
|
||||||
|
|
||||||
|
$code .= sprintf(" class: %s\n", $class);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!$definition->isPublic()) {
|
if (!$definition->isPublic()) {
|
||||||
|
@ -9,7 +9,7 @@ use Symfony\Component\DependencyInjection\Parameter;
|
|||||||
|
|
||||||
$container = new ContainerBuilder();
|
$container = new ContainerBuilder();
|
||||||
$container->
|
$container->
|
||||||
register('foo', 'FooClass')->
|
register('foo', '\FooClass')->
|
||||||
addTag('foo', array('foo' => 'foo'))->
|
addTag('foo', array('foo' => 'foo'))->
|
||||||
addTag('foo', array('bar' => 'bar', 'baz' => 'baz'))->
|
addTag('foo', array('bar' => 'bar', 'baz' => 'baz'))->
|
||||||
setFactoryClass('FooClass')->
|
setFactoryClass('FooClass')->
|
||||||
|
Reference in New Issue
Block a user