public static function get($key = null, $default = null) { if (!$key) { return self::$_options; } if (strpos($key, '.') !== false) { if (!isset(self::$_resolvedOptions[$key])) { self::$_resolvedOptions[$key] = StringUtil::resolve($key, self::$_options, $default); } return self::$_resolvedOptions[$key]; } return isset(self::$_options[$key]) ? self::$_options[$key] : $default; }
/** * Interpolates {{var.subVar}}-style based on a source array given * * Dimensions in the source array are accessed with a passed delimeter (Default: Dot (.)) * * @param string $string The input string to operate on * @param array $source The associative source array * @param mixed $defaultValue The default value for indices that dont exist * @param string|null $delimeter The delimeter for multi-dimension access (Default: Dot (.)) * * @return string The interpolated string with the variables replaced with their values */ public static function interpolate($string, array $source, $defaultValue = null, $delimeter = null) { return preg_replace_callback('/\\{\\{([^\\}]+)\\}\\}/i', function ($m) use($source, $defaultValue, $delimeter) { $resolved = StringUtil::resolve($m[1], $source, $defaultValue, $delimeter); if ($resolved === null) { return $m[0]; } return $resolved; }, $string); }
public function resolveOption($key, $default = null, $delimeter = null) { return StringUtil::resolve($key, $this->getConfig()->getItems(), $default, $delimeter); }