diff options
Diffstat (limited to 'vendor/vlucas/phpdotenv/src/Parser/Value.php')
| -rw-r--r-- | vendor/vlucas/phpdotenv/src/Parser/Value.php | 88 |
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; + } +} |
