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;
+  }
+
+}