X-Git-Url: https://yaffs.net/gitweb/?a=blobdiff_plain;f=vendor%2Fsymfony%2Fdependency-injection%2FDumper%2FXmlDumper.php;h=1dcef12dabd3999fd69b5ef47893600149616967;hb=1c1cb0980bfa6caf0c24cce671b6bb541dc87583;hp=ce7ec49d80c04f56f987b6a750ecd5c42d0e1160;hpb=eba34333e3c89f208d2f72fa91351ad019a71583;p=yaffs-website diff --git a/vendor/symfony/dependency-injection/Dumper/XmlDumper.php b/vendor/symfony/dependency-injection/Dumper/XmlDumper.php index ce7ec49d8..1dcef12da 100644 --- a/vendor/symfony/dependency-injection/Dumper/XmlDumper.php +++ b/vendor/symfony/dependency-injection/Dumper/XmlDumper.php @@ -11,12 +11,15 @@ namespace Symfony\Component\DependencyInjection\Dumper; +use Symfony\Component\DependencyInjection\Alias; +use Symfony\Component\DependencyInjection\Argument\IteratorArgument; +use Symfony\Component\DependencyInjection\Argument\ServiceClosureArgument; +use Symfony\Component\DependencyInjection\Argument\TaggedIteratorArgument; use Symfony\Component\DependencyInjection\ContainerInterface; -use Symfony\Component\DependencyInjection\Parameter; -use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\DependencyInjection\Definition; -use Symfony\Component\DependencyInjection\Alias; use Symfony\Component\DependencyInjection\Exception\RuntimeException; +use Symfony\Component\DependencyInjection\Parameter; +use Symfony\Component\DependencyInjection\Reference; use Symfony\Component\ExpressionLanguage\Expression; /** @@ -35,8 +38,6 @@ class XmlDumper extends Dumper /** * Dumps the service container as an XML string. * - * @param array $options An array of options - * * @return string An xml string representing of the service container */ public function dump(array $options = array()) @@ -55,14 +56,9 @@ class XmlDumper extends Dumper $xml = $this->document->saveXML(); $this->document = null; - return $xml; + return $this->container->resolveEnvPlaceholders($xml); } - /** - * Adds parameters. - * - * @param \DOMElement $parent - */ private function addParameters(\DOMElement $parent) { $data = $this->container->getParameterBag()->all(); @@ -70,7 +66,7 @@ class XmlDumper extends Dumper return; } - if ($this->container->isFrozen()) { + if ($this->container->isCompiled()) { $data = $this->escape($data); } @@ -79,18 +75,12 @@ class XmlDumper extends Dumper $this->convertParameters($data, 'parameter', $parameters); } - /** - * Adds method calls. - * - * @param array $methodcalls - * @param \DOMElement $parent - */ private function addMethodCalls(array $methodcalls, \DOMElement $parent) { foreach ($methodcalls as $methodcall) { $call = $this->document->createElement('call'); $call->setAttribute('method', $methodcall[0]); - if (count($methodcall[1])) { + if (\count($methodcall[1])) { $this->convertParameters($methodcall[1], 'argument', $call); } $parent->appendChild($call); @@ -117,30 +107,15 @@ class XmlDumper extends Dumper $service->setAttribute('class', $class); } - if ($definition->getFactoryMethod(false)) { - $service->setAttribute('factory-method', $definition->getFactoryMethod(false)); - } - if ($definition->getFactoryClass(false)) { - $service->setAttribute('factory-class', $definition->getFactoryClass(false)); - } - if ($definition->getFactoryService(false)) { - $service->setAttribute('factory-service', $definition->getFactoryService(false)); - } if (!$definition->isShared()) { $service->setAttribute('shared', 'false'); } - if (ContainerInterface::SCOPE_CONTAINER !== $scope = $definition->getScope(false)) { - $service->setAttribute('scope', $scope); - } - if (!$definition->isPublic()) { - $service->setAttribute('public', 'false'); + if (!$definition->isPrivate()) { + $service->setAttribute('public', $definition->isPublic() ? 'true' : 'false'); } if ($definition->isSynthetic()) { $service->setAttribute('synthetic', 'true'); } - if ($definition->isSynchronized(false)) { - $service->setAttribute('synchronized', 'true'); - } if ($definition->isLazy()) { $service->setAttribute('lazy', 'true'); } @@ -185,11 +160,13 @@ class XmlDumper extends Dumper if ($callable = $definition->getFactory()) { $factory = $this->document->createElement('factory'); - if (is_array($callable) && $callable[0] instanceof Definition) { + if (\is_array($callable) && $callable[0] instanceof Definition) { $this->addService($callable[0], null, $factory); $factory->setAttribute('method', $callable[1]); - } elseif (is_array($callable)) { - $factory->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); + } elseif (\is_array($callable)) { + if (null !== $callable[0]) { + $factory->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); + } $factory->setAttribute('method', $callable[1]); } else { $factory->setAttribute('function', $callable); @@ -208,13 +185,17 @@ class XmlDumper extends Dumper $service->setAttribute('autowire', 'true'); } - foreach ($definition->getAutowiringTypes() as $autowiringTypeValue) { + foreach ($definition->getAutowiringTypes(false) as $autowiringTypeValue) { $autowiringType = $this->document->createElement('autowiring-type'); $autowiringType->appendChild($this->document->createTextNode($autowiringTypeValue)); $service->appendChild($autowiringType); } + if ($definition->isAutoconfigured()) { + $service->setAttribute('autoconfigure', 'true'); + } + if ($definition->isAbstract()) { $service->setAttribute('abstract', 'true'); } @@ -222,10 +203,10 @@ class XmlDumper extends Dumper if ($callable = $definition->getConfigurator()) { $configurator = $this->document->createElement('configurator'); - if (is_array($callable) && $callable[0] instanceof Definition) { + if (\is_array($callable) && $callable[0] instanceof Definition) { $this->addService($callable[0], null, $configurator); $configurator->setAttribute('method', $callable[1]); - } elseif (is_array($callable)) { + } elseif (\is_array($callable)) { $configurator->setAttribute($callable[0] instanceof Reference ? 'service' : 'class', $callable[0]); $configurator->setAttribute('method', $callable[1]); } else { @@ -249,17 +230,12 @@ class XmlDumper extends Dumper $service = $this->document->createElement('service'); $service->setAttribute('id', $alias); $service->setAttribute('alias', $id); - if (!$id->isPublic()) { - $service->setAttribute('public', 'false'); + if (!$id->isPrivate()) { + $service->setAttribute('public', $id->isPublic() ? 'true' : 'false'); } $parent->appendChild($service); } - /** - * Adds services. - * - * @param \DOMElement $parent - */ private function addServices(\DOMElement $parent) { $definitions = $this->container->getDefinitions(); @@ -292,27 +268,35 @@ class XmlDumper extends Dumper */ private function convertParameters(array $parameters, $type, \DOMElement $parent, $keyAttribute = 'key') { - $withKeys = array_keys($parameters) !== range(0, count($parameters) - 1); + $withKeys = array_keys($parameters) !== range(0, \count($parameters) - 1); foreach ($parameters as $key => $value) { $element = $this->document->createElement($type); if ($withKeys) { $element->setAttribute($keyAttribute, $key); } - if (is_array($value)) { + if ($value instanceof ServiceClosureArgument) { + $value = $value->getValues()[0]; + } + if (\is_array($value)) { $element->setAttribute('type', 'collection'); $this->convertParameters($value, $type, $element, 'key'); + } elseif ($value instanceof TaggedIteratorArgument) { + $element->setAttribute('type', 'tagged'); + $element->setAttribute('tag', $value->getTag()); + } elseif ($value instanceof IteratorArgument) { + $element->setAttribute('type', 'iterator'); + $this->convertParameters($value->getValues(), $type, $element, 'key'); } elseif ($value instanceof Reference) { $element->setAttribute('type', 'service'); $element->setAttribute('id', (string) $value); $behaviour = $value->getInvalidBehavior(); - if ($behaviour == ContainerInterface::NULL_ON_INVALID_REFERENCE) { + if (ContainerInterface::NULL_ON_INVALID_REFERENCE == $behaviour) { $element->setAttribute('on-invalid', 'null'); - } elseif ($behaviour == ContainerInterface::IGNORE_ON_INVALID_REFERENCE) { + } elseif (ContainerInterface::IGNORE_ON_INVALID_REFERENCE == $behaviour) { $element->setAttribute('on-invalid', 'ignore'); - } - if (!$value->isStrict(false)) { - $element->setAttribute('strict', 'false'); + } elseif (ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE == $behaviour) { + $element->setAttribute('on-invalid', 'ignore_uninitialized'); } } elseif ($value instanceof Definition) { $element->setAttribute('type', 'service'); @@ -322,7 +306,7 @@ class XmlDumper extends Dumper $text = $this->document->createTextNode(self::phpToXml((string) $value)); $element->appendChild($text); } else { - if (in_array($value, array('null', 'true', 'false'), true)) { + if (\in_array($value, array('null', 'true', 'false'), true)) { $element->setAttribute('type', 'string'); } $text = $this->document->createTextNode(self::phpToXml($value)); @@ -335,17 +319,15 @@ class XmlDumper extends Dumper /** * Escapes arguments. * - * @param array $arguments - * * @return array */ private function escape(array $arguments) { $args = array(); foreach ($arguments as $k => $v) { - if (is_array($v)) { + if (\is_array($v)) { $args[$k] = $this->escape($v); - } elseif (is_string($v)) { + } elseif (\is_string($v)) { $args[$k] = str_replace('%', '%%', $v); } else { $args[$k] = $v; @@ -375,7 +357,7 @@ class XmlDumper extends Dumper return 'false'; case $value instanceof Parameter: return '%'.$value.'%'; - case is_object($value) || is_resource($value): + case \is_object($value) || \is_resource($value): throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.'); default: return (string) $value;