/** * Parse a block of YAML into PHP * * @param string $yaml YAML-formatted string to parse * @param string $mode Parsing mode to use * @return array */ public static function parse($yaml, $mode = null) { // start measuring $hash = Debug::markStart('parsing', 'yaml'); $mode = $mode ? $mode : self::getMode(); switch ($mode) { case 'loose': $result = Spyc::YAMLLoad($yaml); break; case 'strict': $result = sYAML::parse($yaml); break; case 'transitional': try { $result = sYaml::parse($yaml); } catch (Exception $e) { Log::error($e->getMessage() . ' Falling back to loose mode.', 'core', 'yaml'); $result = Spyc::YAMLLoad($yaml); } break; default: // check for new lines, is this a file? $has_newline = strpos($yaml, "\n") !== false; if (!$has_newline && File::exists($yaml)) { // seems like it is $yaml = File::get($yaml); } $result = Statamic\Dipper\Dipper::parse($yaml); } // end measuring Debug::markEnd($hash); Debug::increment('parses', 'yaml'); return $result; }
/** * Parse a block of YAML into PHP * * @param string $yaml YAML-formatted string to parse * @param string $mode Parsing mode to use * @return array */ public static function parse($yaml, $mode = null) { // start measuring $hash = Debug::markStart('parsing', 'yaml'); $mode = $mode ? $mode : self::getMode(); switch ($mode) { case 'loose': $result = Spyc::YAMLLoad($yaml); break; case 'strict': $result = sYAML::parse($yaml); break; case 'transitional': try { $result = sYaml::parse($yaml); } catch (Exception $e) { Log::error($e->getMessage() . ' Falling back to loose mode.', 'core', 'yaml'); $result = Spyc::YAMLLoad($yaml); } break; default: $result = Spyc::YAMLLoad($yaml); } // end measuring Debug::markEnd($hash); Debug::increment('parses', 'yaml'); return $result; }
/** * Parse a block of YAML into PHP * * @param string $yaml YAML-formatted string to parse * @param string $mode Parsing mode to use * @return array */ public static function parse($yaml, $mode = null) { $mode = $mode ? $mode : self::getMode(); switch ($mode) { case 'loose': return Spyc::YAMLLoad($yaml); case 'strict': return sYAML::parse($yaml); case 'transitional': try { return sYaml::parse($yaml); } catch (Exception $e) { Log::error($e->getMessage() . ' Falling back to loose mode.', 'core', 'yaml'); return Spyc::YAMLLoad($yaml); } default: return Spyc::YAMLLoad($yaml); } }