custom example


        return '%env('.implode(':', $this->stack).')%';
    }

    /** * @return $this */
    public function __call(string $name, array $arguments)static
    {
        $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)static
    {
        array_unshift($this->stack, $processor, ...$args);

        
public function test(string $expected, EnvConfigurator $envConfigurator)
    {
        $this->assertSame($expected(string) $envConfigurator);
    }

    public static function provide(): iterable
    {
        yield ['%env(FOO)%', new EnvConfigurator('FOO')];
        yield ['%env(string:FOO)%', new EnvConfigurator('string:FOO')];
        yield ['%env(string:FOO)%', (new EnvConfigurator('FOO'))->string()];
        yield ['%env(key:path:url:FOO)%', (new EnvConfigurator('FOO'))->url()->key('path')];
        yield ['%env(default:fallback:bar:arg1:FOO)%', (new EnvConfigurator('FOO'))->custom('bar', 'arg1')->default('fallback')];
        yield ['%env(my_processor:my_argument:FOO)%', (new EnvConfigurator('FOO'))->myProcessor('my_argument')];
        yield ['%env(enum:'.StringBackedEnum::class.':FOO)%', (new EnvConfigurator('FOO'))->enum(StringBackedEnum::class)];
    }
}

        return '%env('.implode(':', $this->stack).')%';
    }

    /** * @return $this */
    public function __call(string $name, array $arguments)static
    {
        $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)static
    {
        array_unshift($this->stack, $processor, ...$args);

        
Home | Imprint | This part of the site doesn't use cookies.