예제 #1
0
 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;
 }
예제 #2
0
 /**
  * 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);
 }
예제 #3
0
 public function resolveOption($key, $default = null, $delimeter = null)
 {
     return StringUtil::resolve($key, $this->getConfig()->getItems(), $default, $delimeter);
 }