Mercurial > hg > isophonics-drupal-site
diff core/lib/Drupal/Component/DependencyInjection/Dumper/PhpArrayDumper.php @ 0:4c8ae668cc8c
Initial import (non-working)
author | Chris Cannam |
---|---|
date | Wed, 29 Nov 2017 16:09:58 +0000 |
parents | |
children |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/core/lib/Drupal/Component/DependencyInjection/Dumper/PhpArrayDumper.php Wed Nov 29 16:09:58 2017 +0000 @@ -0,0 +1,72 @@ +<?php + +namespace Drupal\Component\DependencyInjection\Dumper; + +use Symfony\Component\DependencyInjection\ContainerInterface; + +/** + * PhpArrayDumper dumps a service container as a PHP array. + * + * The format of this dumper is a human-readable serialized PHP array, which is + * very similar to the YAML based format, but based on PHP arrays instead of + * YAML strings. + * + * It is human-readable, for a machine-optimized version based on this one see + * \Drupal\Component\DependencyInjection\Dumper\OptimizedPhpArrayDumper. + * + * @see \Drupal\Component\DependencyInjection\PhpArrayContainer + */ +class PhpArrayDumper extends OptimizedPhpArrayDumper { + + /** + * {@inheritdoc} + */ + public function getArray() { + $this->serialize = FALSE; + return parent::getArray(); + } + + /** + * {@inheritdoc} + */ + protected function dumpCollection($collection, &$resolve = FALSE) { + $code = []; + + foreach ($collection as $key => $value) { + if (is_array($value)) { + $code[$key] = $this->dumpCollection($value); + } + else { + $code[$key] = $this->dumpValue($value); + } + } + + return $code; + } + + /** + * {@inheritdoc} + */ + protected function getServiceCall($id, $invalid_behavior = ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) { + if ($invalid_behavior !== ContainerInterface::EXCEPTION_ON_INVALID_REFERENCE) { + return '@?' . $id; + } + + return '@' . $id; + } + + /** + * {@inheritdoc} + */ + protected function getParameterCall($name) { + return '%' . $name . '%'; + } + + /** + * {@inheritdoc} + */ + protected function supportsMachineFormat() { + return FALSE; + } + +}