Esempio n. 1
0
 public function returnConfig()
 {
     $config = array('output' => null, 'scope' => $this->scope, 'level' => $this->level, 'append' => ';');
     $output = '';
     if ($this->isIterative === true) {
         foreach ($this->params as $element) {
             if (is_array($element)) {
                 foreach ($element as $param) {
                     if (is_array($param)) {
                         //var_dump($param);
                         $config['output'][] = rtrim(StringTools::sprintfn($this->scheme, StringTools::makeList($param)));
                     }
                 }
             }
         }
     } else {
         $config['output'] = rtrim(StringTools::sprintfn($this->scheme, StringTools::makeList($this->params)));
     }
     return $config;
 }
Esempio n. 2
0
 private function parseWithConfig($configuration, $result)
 {
     $output = null;
     foreach ($this->options as $option) {
         /*
          * if there are multiple paths for one setting
          */
         if (is_array($option->path)) {
             foreach ($option->path as $config => $path) {
                 //($setting = ArrayTools::accessArrayElementByPath($configuration, $path)) !== null ?: $setting = $option->default[$config];
                 $setting = ArrayTools::accessArrayElementByPath($configuration, $path);
                 if ($setting === null) {
                     if ($option->default[$config] !== null) {
                         LogCLI::MessageResult('Setting ' . $config . ' not set, defaulting to: ' . $option->default[$config], 7, LogCLI::OK);
                     }
                     $setting = $option->default[$config];
                 }
                 $values[$config] = $setting;
             }
             $this->_dispatchAction($option, $values, $result);
         } else {
             //($setting = ArrayTools::accessArrayElementByPath($configuration, $option->path)) !== null ?: $setting = $option->default;
             $setting = ArrayTools::accessArrayElementByPath($configuration, $option->path);
             if ($setting === null) {
                 $option->setDefaults();
                 if ($option->default !== null) {
                     LogCLI::MessageResult('Setting ' . $option->name . ' not set, defaulting to: ' . $option->default, 7, LogCLI::OK);
                 }
                 $setting = $option->default;
             }
             //var_dump($setting);
             /*
              *  If we got an array, how do we divide it?
              *  By default by ' ' (space), but sometimes we want eg. PHP_EOL, or comma.
              */
             $value = StringTools::makeList($setting, $option->divideBy);
             $this->_dispatchAction($option, $value, $result);
         }
     }
     //foreach(preg_split("/(\r?\n)/", $this->template) as $line)
     foreach (explode(PHP_EOL, $this->template) as $line) {
         //$parsedline = ParseTools::sprintfn($line, $result->options);
         $parsedline = ParseTools::parseStringWithReplacementList($line, $result->options);
         // if all we got is whitespace, don't add it
         if (strlen(rtrim($parsedline)) < 1) {
             continue;
         }
         // if we got a multiline responds we have to indent it
         // TODO: maybe explode "\n" or PHP_EOL would be better?
         //            if(count($lines = preg_split("/(\r?\n)/", $parsedline)) > 1)
         if (count($lines = explode(PHP_EOL, $parsedline)) > 1) {
             $indentedlines = array_shift($lines) . PHP_EOL;
             foreach ($lines as &$multiline) {
                 $indentedlines .= StringTools::indentLinesToMatchOther(trim($line), $line, $multiline) . PHP_EOL;
             }
             $parsedline = rtrim($indentedlines);
         }
         $output .= $parsedline . PHP_EOL;
     }
     return $output;
 }