Version 1
[yaffs-website] / vendor / phpunit / phpunit / src / Util / Fileloader.php
diff --git a/vendor/phpunit/phpunit/src/Util/Fileloader.php b/vendor/phpunit/phpunit/src/Util/Fileloader.php
new file mode 100644 (file)
index 0000000..7fc787f
--- /dev/null
@@ -0,0 +1,72 @@
+<?php
+/*
+ * This file is part of PHPUnit.
+ *
+ * (c) Sebastian Bergmann <sebastian@phpunit.de>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/**
+ * Utility methods to load PHP sourcefiles.
+ *
+ * @since Class available since Release 2.3.0
+ */
+class PHPUnit_Util_Fileloader
+{
+    /**
+     * Checks if a PHP sourcefile is readable.
+     * The sourcefile is loaded through the load() method.
+     *
+     * @param string $filename
+     *
+     * @return string
+     *
+     * @throws PHPUnit_Framework_Exception
+     */
+    public static function checkAndLoad($filename)
+    {
+        $includePathFilename = stream_resolve_include_path($filename);
+
+        if (!$includePathFilename || !is_readable($includePathFilename)) {
+            throw new PHPUnit_Framework_Exception(
+                sprintf('Cannot open file "%s".' . "\n", $filename)
+            );
+        }
+
+        self::load($includePathFilename);
+
+        return $includePathFilename;
+    }
+
+    /**
+     * Loads a PHP sourcefile.
+     *
+     * @param string $filename
+     *
+     * @return mixed
+     *
+     * @since  Method available since Release 3.0.0
+     */
+    public static function load($filename)
+    {
+        $oldVariableNames = array_keys(get_defined_vars());
+
+        include_once $filename;
+
+        $newVariables     = get_defined_vars();
+        $newVariableNames = array_diff(
+            array_keys($newVariables),
+            $oldVariableNames
+        );
+
+        foreach ($newVariableNames as $variableName) {
+            if ($variableName != 'oldVariableNames') {
+                $GLOBALS[$variableName] = $newVariables[$variableName];
+            }
+        }
+
+        return $filename;
+    }
+}