Ejemplo n.º 1
0
 /**
  * Parse Java-Properties
  *
  * @param string|null $string The string to parse
  *
  * @return             array The parsed data
  * @since              0.2.6
  * @codeCoverageIgnore
  */
 private function parseProperties($string = null)
 {
     $result = [];
     $lines = preg_split('/\\n\\t|\\n/', $string);
     $key = '';
     static $isWaitingForOtherLine = false;
     foreach ($lines as $k => $line) {
         if (empty($line) || !$isWaitingForOtherLine && strpos($line, '#') === 0) {
             continue;
         }
         if (!strpos($line, '=') && !$isWaitingForOtherLine) {
             return [];
         }
         if (!$isWaitingForOtherLine) {
             $key = substr($line, 0, strpos($line, '='));
             $key = trim($key);
             $value = substr($line, strpos($line, '=') + 1, strlen($line));
         } else {
             $value .= $line;
         }
         // Trim unnecessary white spaces
         $value = trim($value);
         $value = Utils::trimWhitespace($value);
         // Remove unnecessary double/single qoutes
         $value = Utils::removeQuotes($value);
         if (strpos($value, '\\') === strlen($value) - strlen('\\')) {
             $value = substr($value, 0, strlen($value) - 1);
             $isWaitingForOtherLine = true;
         } else {
             $isWaitingForOtherLine = false;
         }
         $result[$key] = empty($value) ? '' : $value;
         unset($lines[$k]);
     }
     Utils::unescapeProperties($result);
     Utils::trimArrayElements($result);
     Utils::stripBackslashes($result);
     Utils::fixArrayValues($result);
     // Fix for dotted properties
     $data = [];
     foreach ($result as $k => $v) {
         Arr::set($data, $k, $v);
     }
     return $data;
 }
Ejemplo n.º 2
0
 /**
  * {@inheritdoc}
  *
  * @param string $key Configuration item key name
  *
  * @return             bool
  * @codeCoverageIgnore
  */
 public function delete($key)
 {
     if (isset($this->cache[$key])) {
         // unset($this->cache[$key]);
         Arr::delete($this->cache, $key);
     }
     return Arr::delete($this->data, $key);
 }