Mercurial > hg > isophonics-drupal-site
diff vendor/symfony/dependency-injection/Dumper/YamlDumper.php @ 14:1fec387a4317
Update Drupal core to 8.5.2 via Composer
author | Chris Cannam |
---|---|
date | Mon, 23 Apr 2018 09:46:53 +0100 |
parents | 4c8ae668cc8c |
children | 129ea1e6d783 |
line wrap: on
line diff
--- a/vendor/symfony/dependency-injection/Dumper/YamlDumper.php Mon Apr 23 09:33:26 2018 +0100 +++ b/vendor/symfony/dependency-injection/Dumper/YamlDumper.php Mon Apr 23 09:46:53 2018 +0100 @@ -12,7 +12,14 @@ namespace Symfony\Component\DependencyInjection\Dumper; use Symfony\Component\Yaml\Dumper as YmlDumper; +use Symfony\Component\Yaml\Parser; +use Symfony\Component\Yaml\Tag\TaggedValue; +use Symfony\Component\Yaml\Yaml; use Symfony\Component\DependencyInjection\Alias; +use Symfony\Component\DependencyInjection\Argument\ArgumentInterface; +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\Definition; use Symfony\Component\DependencyInjection\Parameter; @@ -32,8 +39,6 @@ /** * Dumps the service container as an YAML string. * - * @param array $options An array of options - * * @return string A YAML string representing of the service container */ public function dump(array $options = array()) @@ -57,7 +62,7 @@ * * @return string */ - private function addService($id, $definition) + private function addService($id, Definition $definition) { $code = " $id:\n"; if ($class = $definition->getClass()) { @@ -68,8 +73,8 @@ $code .= sprintf(" class: %s\n", $this->dumper->dump($class)); } - if (!$definition->isPublic()) { - $code .= " public: false\n"; + if (!$definition->isPrivate()) { + $code .= sprintf(" public: %s\n", $definition->isPublic() ? 'true' : 'false'); } $tagsCode = ''; @@ -105,13 +110,21 @@ } $autowiringTypesCode = ''; - foreach ($definition->getAutowiringTypes() as $autowiringType) { + foreach ($definition->getAutowiringTypes(false) as $autowiringType) { $autowiringTypesCode .= sprintf(" - %s\n", $this->dumper->dump($autowiringType)); } if ($autowiringTypesCode) { $code .= sprintf(" autowiring_types:\n%s", $autowiringTypesCode); } + if ($definition->isAutoconfigured()) { + $code .= " autoconfigure: true\n"; + } + + if ($definition->isAbstract()) { + $code .= " abstract: true\n"; + } + if ($definition->isLazy()) { $code .= " lazy: true\n"; } @@ -162,13 +175,13 @@ * * @return string */ - private function addServiceAlias($alias, $id) + private function addServiceAlias($alias, Alias $id) { - if ($id->isPublic()) { + if ($id->isPrivate()) { return sprintf(" %s: '@%s'\n", $alias, $id); } - return sprintf(" %s:\n alias: %s\n public: false\n", $alias, $id); + return sprintf(" %s:\n alias: %s\n public: %s\n", $alias, $id, $id->isPublic() ? 'true' : 'false'); } /** @@ -209,7 +222,7 @@ return ''; } - $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isFrozen()); + $parameters = $this->prepareParameters($this->container->getParameterBag()->all(), $this->container->isCompiled()); return $this->dumper->dump(array('parameters' => $parameters), 2); } @@ -245,6 +258,22 @@ */ private function dumpValue($value) { + if ($value instanceof ServiceClosureArgument) { + $value = $value->getValues()[0]; + } + if ($value instanceof ArgumentInterface) { + if ($value instanceof TaggedIteratorArgument) { + return new TaggedValue('tagged', $value->getTag()); + } + if ($value instanceof IteratorArgument) { + $tag = 'iterator'; + } else { + throw new RuntimeException(sprintf('Unspecified Yaml tag for type "%s".', get_class($value))); + } + + return new TaggedValue($tag, $this->dumpValue($value->getValues())); + } + if (is_array($value)) { $code = array(); foreach ($value as $k => $v) { @@ -258,6 +287,8 @@ return $this->getParameterCall((string) $value); } elseif ($value instanceof Expression) { return $this->getExpressionCall((string) $value); + } elseif ($value instanceof Definition) { + return new TaggedValue('service', (new Parser())->parse("_:\n".$this->addService('_', $value), Yaml::PARSE_CUSTOM_TAGS)['_']['_']); } elseif (is_object($value) || is_resource($value)) { throw new RuntimeException('Unable to dump a service container if a parameter is an object or a resource.'); } @@ -275,8 +306,12 @@ */ private function getServiceCall($id, Reference $reference = null) { - if (null !== $reference && ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE !== $reference->getInvalidBehavior()) { - return sprintf('@?%s', $id); + if (null !== $reference) { + switch ($reference->getInvalidBehavior()) { + case ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE: break; + case ContainerInterface::IGNORE_ON_UNINITIALIZED_REFERENCE: return sprintf('@!%s', $id); + default: return sprintf('@?%s', $id); + } } return sprintf('@%s', $id); @@ -326,8 +361,6 @@ /** * Escapes arguments. * - * @param array $arguments - * * @return array */ private function escape(array $arguments)