--- /dev/null
+<?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;
+ }
+
+}