diff vendor/sebastian/global-state/src/CodeExporter.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
line wrap: on
line diff
--- a/vendor/sebastian/global-state/src/CodeExporter.php	Mon Apr 23 09:33:26 2018 +0100
+++ b/vendor/sebastian/global-state/src/CodeExporter.php	Mon Apr 23 09:46:53 2018 +0100
@@ -1,6 +1,6 @@
 <?php
 /*
- * This file is part of the GlobalState package.
+ * This file is part of sebastian/global-state.
  *
  * (c) Sebastian Bergmann <sebastian@phpunit.de>
  *
@@ -8,6 +8,8 @@
  * file that was distributed with this source code.
  */
 
+declare(strict_types=1);
+
 namespace SebastianBergmann\GlobalState;
 
 /**
@@ -15,16 +17,12 @@
  */
 class CodeExporter
 {
-    /**
-     * @param  Snapshot $snapshot
-     * @return string
-     */
-    public function constants(Snapshot $snapshot)
+    public function constants(Snapshot $snapshot): string
     {
         $result = '';
 
         foreach ($snapshot->constants() as $name => $value) {
-            $result .= sprintf(
+            $result .= \sprintf(
                 'if (!defined(\'%s\')) define(\'%s\', %s);' . "\n",
                 $name,
                 $name,
@@ -35,16 +33,27 @@
         return $result;
     }
 
-    /**
-     * @param  Snapshot $snapshot
-     * @return string
-     */
-    public function iniSettings(Snapshot $snapshot)
+    public function globalVariables(Snapshot $snapshot): string
+    {
+        $result = '$GLOBALS = [];' . PHP_EOL;
+
+        foreach ($snapshot->globalVariables() as $name => $value) {
+            $result .= \sprintf(
+                '$GLOBALS[%s] = %s;' . PHP_EOL,
+                $this->exportVariable($name),
+                $this->exportVariable($value)
+            );
+        }
+
+        return $result;
+    }
+
+    public function iniSettings(Snapshot $snapshot): string
     {
         $result = '';
 
         foreach ($snapshot->iniSettings() as $key => $value) {
-            $result .= sprintf(
+            $result .= \sprintf(
                 '@ini_set(%s, %s);' . "\n",
                 $this->exportVariable($key),
                 $this->exportVariable($value)
@@ -54,32 +63,24 @@
         return $result;
     }
 
-    /**
-     * @param  mixed  $variable
-     * @return string
-     */
-    private function exportVariable($variable)
+    private function exportVariable($variable): string
     {
-        if (is_scalar($variable) || is_null($variable) ||
-            (is_array($variable) && $this->arrayOnlyContainsScalars($variable))) {
-            return var_export($variable, true);
+        if (\is_scalar($variable) || \is_null($variable) ||
+            (\is_array($variable) && $this->arrayOnlyContainsScalars($variable))) {
+            return \var_export($variable, true);
         }
 
-        return 'unserialize(' . var_export(serialize($variable), true) . ')';
+        return 'unserialize(' . \var_export(\serialize($variable), true) . ')';
     }
 
-    /**
-     * @param  array $array
-     * @return bool
-     */
-    private function arrayOnlyContainsScalars(array $array)
+    private function arrayOnlyContainsScalars(array $array): bool
     {
         $result = true;
 
         foreach ($array as $element) {
-            if (is_array($element)) {
+            if (\is_array($element)) {
                 $result = self::arrayOnlyContainsScalars($element);
-            } elseif (!is_scalar($element) && !is_null($element)) {
+            } elseif (!\is_scalar($element) && !\is_null($element)) {
                 $result = false;
             }