Bolt\Config::doReplacements PHP Method

doReplacements() public method

Replaces placeholders in config values %foo% will be resolved to $app['foo'] from the container
public doReplacements ( mixed $value = null ) : mixed
$value mixed
return mixed
    public function doReplacements($value = null)
    {
        if ($value === null) {
            $this->data = $this->doReplacements($this->data);
            return;
        }
        if (!is_array($value) && ('%' !== substr($value, 0, 1) && '%' !== substr($value, -1, 1))) {
            return $value;
        }
        if (is_array($value)) {
            foreach ($value as $k => $v) {
                if ($v === null) {
                    continue;
                }
                $value[$k] = $this->doReplacements($v);
            }
            return $value;
        }
        if (is_string($value)) {
            $serviceName = substr($value, 1, strlen($value) - 2);
            if (strpos($serviceName, ':') !== false) {
                list($serviceName, $params) = explode(':', $serviceName);
            } else {
                $params = [];
            }
            if (!isset($this->app[$serviceName])) {
                return;
            }
            $service = $this->app[$serviceName];
            if (is_callable($service)) {
                return call_user_func_array($service, [$params]);
            } else {
                return $service;
            }
        }
        return $value;
    }