123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224 |
- <?php
- /*
- * This file is part of the Symfony package.
- *
- * (c) Fabien Potencier <fabien@symfony.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- namespace Symfony\Component\DependencyInjection\Loader\Configurator;
- use Symfony\Component\Config\Loader\ParamConfigurator;
- class EnvConfigurator extends ParamConfigurator
- {
- /**
- * @var string[]
- */
- private $stack;
- public function __construct(string $name)
- {
- $this->stack = explode(':', $name);
- }
- public function __toString(): string
- {
- return '%env('.implode(':', $this->stack).')%';
- }
- /**
- * @return $this
- */
- public function __call(string $name, array $arguments): self
- {
- $processor = strtolower(preg_replace(['/([A-Z]+)([A-Z][a-z])/', '/([a-z\d])([A-Z])/'], '\1_\2', $name));
- $this->custom($processor, ...$arguments);
- return $this;
- }
- /**
- * @return $this
- */
- public function custom(string $processor, ...$args): self
- {
- array_unshift($this->stack, $processor, ...$args);
- return $this;
- }
- /**
- * @return $this
- */
- public function base64(): self
- {
- array_unshift($this->stack, 'base64');
- return $this;
- }
- /**
- * @return $this
- */
- public function bool(): self
- {
- array_unshift($this->stack, 'bool');
- return $this;
- }
- /**
- * @return $this
- */
- public function not(): self
- {
- array_unshift($this->stack, 'not');
- return $this;
- }
- /**
- * @return $this
- */
- public function const(): self
- {
- array_unshift($this->stack, 'const');
- return $this;
- }
- /**
- * @return $this
- */
- public function csv(): self
- {
- array_unshift($this->stack, 'csv');
- return $this;
- }
- /**
- * @return $this
- */
- public function file(): self
- {
- array_unshift($this->stack, 'file');
- return $this;
- }
- /**
- * @return $this
- */
- public function float(): self
- {
- array_unshift($this->stack, 'float');
- return $this;
- }
- /**
- * @return $this
- */
- public function int(): self
- {
- array_unshift($this->stack, 'int');
- return $this;
- }
- /**
- * @return $this
- */
- public function json(): self
- {
- array_unshift($this->stack, 'json');
- return $this;
- }
- /**
- * @return $this
- */
- public function key(string $key): self
- {
- array_unshift($this->stack, 'key', $key);
- return $this;
- }
- /**
- * @return $this
- */
- public function url(): self
- {
- array_unshift($this->stack, 'url');
- return $this;
- }
- /**
- * @return $this
- */
- public function queryString(): self
- {
- array_unshift($this->stack, 'query_string');
- return $this;
- }
- /**
- * @return $this
- */
- public function resolve(): self
- {
- array_unshift($this->stack, 'resolve');
- return $this;
- }
- /**
- * @return $this
- */
- public function default(string $fallbackParam): self
- {
- array_unshift($this->stack, 'default', $fallbackParam);
- return $this;
- }
- /**
- * @return $this
- */
- public function string(): self
- {
- array_unshift($this->stack, 'string');
- return $this;
- }
- /**
- * @return $this
- */
- public function trim(): self
- {
- array_unshift($this->stack, 'trim');
- return $this;
- }
- /**
- * @return $this
- */
- public function require(): self
- {
- array_unshift($this->stack, 'require');
- return $this;
- }
- }
|