Example #1
0
 public function testloadString()
 {
     $file = file_get_contents(ROOT_DIR . "tests/test.yml");
     $spicyArray = Spicy::loadString($file);
     $resultArray = array(array("name" => "testname1", "column1" => 1, "column2" => 2, "column3" => 3), array("name" => "testname2", "column1" => 2, "column2" => 3, "column3" => 4));
     $this->assertEquals($spicyArray, $resultArray);
 }
Example #2
0
 private static function _addArray($lineArray, $indent)
 {
     $key = key($lineArray);
     $val = isset($lineArray[$key]) ? $lineArray[$key] : NULL;
     if ($key === '__SPICYZERO__') {
         $key = '0';
     }
     if ($indent === 0 && !self::$groupAlias && !self::$groupAnchor) {
         if ($key || $key === '' || $key === '0') {
             self::$result[$key] = $val;
         } else {
             self::$result[] = $val;
             end(self::$result);
             $key = key(self::$result);
         }
         self::$path[$indent] = $key;
         return;
     }
     $history[] = $_arr = self::$result;
     foreach (self::$path as $path) {
         $history[] = $_arr = $_arr[$path];
     }
     if (self::$groupAlias) {
         if (!isset(self::$savedGroups[self::$groupAlias])) {
             throw new LogicException('Bad group name:' . self::$groupAlias . '.');
         }
         $val = self::$result;
         foreach (self::$savedGroups[self::$groupAlias] as $g) {
             $val = $val[$g];
         }
         self::$groupAlias = FALSE;
     }
     if ((string) $key === $key && $key === '<<') {
         $_arr = is_array($_arr) ? array_merge($_arr, $val) : $val;
     } else {
         if ($key || $key === '' || $key === '0') {
             if (!is_array($_arr)) {
                 $_arr = array($key => $val);
             } else {
                 $_arr[$key] = $val;
             }
         } else {
             if (!is_array($_arr)) {
                 $_arr = array($val);
                 $key = 0;
             } else {
                 $_arr[] = $val;
                 end($_arr);
                 $key = key($_arr);
             }
         }
     }
     $reversePath = array_reverse(self::$path);
     $reverseHistory = array_reverse($history);
     $reverseHistory[0] = $_arr;
     $count = count($reverseHistory) - 1;
     for ($i = 0; $i < $count; ++$i) {
         $reverseHistory[$i + 1][$reversePath[$i]] = $reverseHistory[$i];
     }
     self::$result = $reverseHistory[$count];
     self::$path[$indent] = $key;
     if (self::$groupAnchor) {
         self::$savedGroups[self::$groupAnchor] = self::$path;
         if (is_array($val)) {
             $k = key($val);
             if ((int) $k !== $k) {
                 self::$savedGroups[self::$groupAnchor][$indent + 2] = $k;
             }
         }
         self::$groupAnchor = FALSE;
     }
 }