summaryrefslogtreecommitdiff
path: root/vendor/vlucas/phpdotenv/src/Parser/Value.php
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/vlucas/phpdotenv/src/Parser/Value.php')
-rw-r--r--vendor/vlucas/phpdotenv/src/Parser/Value.php88
1 files changed, 88 insertions, 0 deletions
diff --git a/vendor/vlucas/phpdotenv/src/Parser/Value.php b/vendor/vlucas/phpdotenv/src/Parser/Value.php
new file mode 100644
index 0000000..9e495a1
--- /dev/null
+++ b/vendor/vlucas/phpdotenv/src/Parser/Value.php
@@ -0,0 +1,88 @@
+<?php
+
+declare(strict_types=1);
+
+namespace Dotenv\Parser;
+
+use Dotenv\Util\Str;
+
+final class Value
+{
+ /**
+ * The string representation of the parsed value.
+ *
+ * @var string
+ */
+ private $chars;
+
+ /**
+ * The locations of the variables in the value.
+ *
+ * @var int[]
+ */
+ private $vars;
+
+ /**
+ * Internal constructor for a value.
+ *
+ * @param string $chars
+ * @param int[] $vars
+ *
+ * @return void
+ */
+ private function __construct(string $chars, array $vars)
+ {
+ $this->chars = $chars;
+ $this->vars = $vars;
+ }
+
+ /**
+ * Create an empty value instance.
+ *
+ * @return \Dotenv\Parser\Value
+ */
+ public static function blank()
+ {
+ return new self('', []);
+ }
+
+ /**
+ * Create a new value instance, appending the characters.
+ *
+ * @param string $chars
+ * @param bool $var
+ *
+ * @return \Dotenv\Parser\Value
+ */
+ public function append(string $chars, bool $var)
+ {
+ return new self(
+ $this->chars.$chars,
+ $var ? \array_merge($this->vars, [Str::len($this->chars)]) : $this->vars
+ );
+ }
+
+ /**
+ * Get the string representation of the parsed value.
+ *
+ * @return string
+ */
+ public function getChars()
+ {
+ return $this->chars;
+ }
+
+ /**
+ * Get the locations of the variables in the value.
+ *
+ * @return int[]
+ */
+ public function getVars()
+ {
+ $vars = $this->vars;
+
+ \rsort($vars);
+
+ return $vars;
+ }
+}