Beispiel #1
0
 public function testSetValueByPath()
 {
     $map = ["one" => "a", "two" => ["one" => "a", "two" => ["one" => "a", "two" => "b", "three" => "c"]]];
     CMap::setValueByPath($map, "one", "d");
     CMap::setValueByPath($map, "two.one", "e");
     CMap::setValueByPath($map, "two.two.one", "f");
     CMap::setValueByPath($map, "two.two.two", "g");
     CMap::setValueByPath($map, "two.two.three", "h");
     $this->assertTrue(CMap::valueByPath($map, "one") === "d");
     $this->assertTrue(CMap::equals(CMap::valueByPath($map, "two"), ["one" => "e", "two" => ["one" => "f", "two" => "g", "three" => "h"]]));
     $this->assertTrue(CMap::valueByPath($map, "two.one") === "e");
     $this->assertTrue(CMap::equals(CMap::valueByPath($map, "two.two"), ["one" => "f", "two" => "g", "three" => "h"]));
     $this->assertTrue(CMap::valueByPath($map, "two.two.one") === "f");
     $this->assertTrue(CMap::valueByPath($map, "two.two.two") === "g");
     $this->assertTrue(CMap::valueByPath($map, "two.two.three") === "h");
 }
Beispiel #2
0
 /**
  * From a map, returns the value found by a specified key path.
  *
  * @param  string $path The key path by which the value is to be found, e.g. "level1key.level2key".
  *
  * @return mixed The value found by the key path.
  */
 public function valueByPath($path)
 {
     return CMap::valueByPath($this->m_map, $path);
 }
 /**
  * Returns the value of the application's configuration option specified by a global path.
  *
  * @param  string $path The global path to the option.
  *
  * @return mixed The option's value.
  */
 public static function option($path)
 {
     assert('is_cstring($path)', vs(isset($this), get_defined_vars()));
     $value = CMap::valueByPath(self::$ms_config, $path);
     return is_bool($value) ? $value : oop_x($value);
 }