예제 #1
0
 protected function execute(array $arguments = array(), array $options = array())
 {
     $message = $this->formatLine('Project configuration', nbLogger::COMMENT);
     $message .= "\n";
     if (isset($options['filter'])) {
         $params = nbConfig::get($options['filter']);
         $params = nbArrayUtils::getAssociative($params);
         $message .= $this->formatLine('Filter is: <info>' . $options['filter'] . '</info> ', nbLogger::COMMENT);
         $message .= "\n";
     } else {
         $params = nbConfig::getAll(true);
     }
     ksort($params);
     $max = 0;
     foreach ($params as $param => $value) {
         if ($max < strlen($param)) {
             $max = strlen($param);
         }
     }
     foreach ($params as $param => $value) {
         $message .= $this->format(sprintf(" %-{$max}s", $param), nbLogger::INFO);
         $message .= sprintf("  => %s\n", $this->format($value, nbLogger::COMMENT));
     }
     $this->log($message);
 }
예제 #2
0
 public function replaceTokens($config, $prefix, $parentPath = '')
 {
     $replaceTokens = false;
     foreach (nbArrayUtils::getAssociative($config) as $path => $value) {
         if (is_array($value)) {
             if (!nbArrayUtils::isAssociative($value)) {
                 //echo 'Checking non associative path: ' . $path . "\n";
                 if ($this->replaceTokens($value, $prefix, $path . '_')) {
                     $replaceTokens = true;
                 }
             } else {
                 //echo 'Checking associative path: ' . $path . "\n";
                 foreach ($value as $i => $v) {
                     //echo $v. "\n";
                     if ($this->replaceTokens($v, $prefix, $path . '_' . $i . '_')) {
                         $replaceTokens = true;
                     }
                 }
             }
         } else {
             $tokenizer = new ConfigTokenReplacer($this, $prefix);
             $replaced = preg_replace_callback('/%([^%]+)%/', array(&$tokenizer, 'replaceTokens'), $value);
             if ($replaced != $value) {
                 $this->set($parentPath . $path, $replaced);
                 $replaceTokens = true;
             }
         }
     }
     return $replaceTokens;
 }
예제 #3
0
<?php

require_once dirname(__FILE__) . '/../../../bootstrap/unit.php';
$t = new lime_test(8);
$t->comment('nbArrayUtils - Test getAssociative');
$key1 = array('foo' => 'fooValue');
$t->is(nbArrayUtils::getAssociative($key1), $key1, 'nbArrayUtils::getAssociative() returns an associative array of all config keys');
$key1 = array('foo' => array('bar', 'baz'));
$t->is(nbArrayUtils::getAssociative($key1), $key1, 'nbArrayUtils::getAssociative() returns an associative array of all config keys');
$key1 = array('foo' => array('bar' => 'baz'));
$result = array('foo_bar' => 'baz');
$t->is(nbArrayUtils::getAssociative($key1), $result, 'nbArrayUtils::getAssociative() returns an associative array of all config keys');
$key1 = array('foo' => array('bar' => array('baz' => 'baq')));
$result = array('foo_bar_baz' => 'baq');
$t->is(nbArrayUtils::getAssociative($key1), $result, 'nbArrayUtils::getAssociative() returns an associative array of all config keys');
$key1 = array('foo' => 'fooValue', 'bar' => 'barValue');
$t->is(nbArrayUtils::getAssociative($key1), $key1, 'nbArrayUtils::getAssociative() returns an associative array of all config keys');
$key1 = array('foo' => 'fooValue', 'bar' => array('barValue1', 'barValue2'));
$t->is(nbArrayUtils::getAssociative($key1), $key1, 'nbArrayUtils::getAssociative() returns an associative array of all config keys');
$key1 = array('foo' => 'fooValue', 'bar' => array('bar1' => 'barValue1', 'bar2' => 'barValue2'));
$result = array('foo' => 'fooValue', 'bar_bar1' => 'barValue1', 'bar_bar2' => 'barValue2');
$t->is(nbArrayUtils::getAssociative($key1), $result, 'nbArrayUtils::getAssociative() returns an associative array of all config keys');
$key1 = array('foo' => 'fooValue', 'bar' => array('bar1' => 'barValue1', 'bar2' => 'barValue2'), 'baz' => array('baz1' => array('subbaz' => array('a', 'b', 'c'))));
$result = array('foo' => 'fooValue', 'bar_bar1' => 'barValue1', 'bar_bar2' => 'barValue2', 'baz_baz1_subbaz' => array('a', 'b', 'c'));
$t->is(nbArrayUtils::getAssociative($key1), $result, 'nbArrayUtils::getAssociative() returns an associative array of all config keys');