コード例 #1
0
ファイル: lmbYaml.class.php プロジェクト: anykey84/YaBackup
 /**
  * Sets the YAML specification version to use.
  *
  * @param string $version The YAML specification version
  */
 public static function setSpecVersion($version)
 {
     if (!in_array($version, array('1.1', '1.2'))) {
         throw new InvalidArgumentException(sprintf('Version %s of the YAML specifications is not supported', $version));
     }
     self::$spec = $version;
 }
コード例 #2
0
ファイル: lmbConfTools.class.php プロジェクト: knevcher/limb
 protected function parseYamlFile($file)
 {
     $yml = lmbYaml::load($file);
     return new lmbObject($yml);
 }
コード例 #3
0
 /**
  * Evaluates scalars and replaces magic values.
  *
  * @param string $scalar
  *
  * @return string A YAML string
  */
 protected static function evaluateScalar($scalar)
 {
     $scalar = trim($scalar);
     if ('1.1' === lmbYaml::getSpecVersion()) {
         $trueValues = array('true', 'on', '+', 'yes', 'y');
         $falseValues = array('false', 'off', '-', 'no', 'n');
     } else {
         $trueValues = array('true');
         $falseValues = array('false');
     }
     switch (true) {
         case 'null' == strtolower($scalar):
         case '' == $scalar:
         case '~' == $scalar:
             return null;
         case 0 === strpos($scalar, '!str'):
             return (string) substr($scalar, 5);
         case 0 === strpos($scalar, '! '):
             return intval(self::parseScalar(substr($scalar, 2)));
         case 0 === strpos($scalar, '!!php/object:'):
             return unserialize(substr($scalar, 13));
         case ctype_digit($scalar):
             $raw = $scalar;
             $cast = intval($scalar);
             return '0' == $scalar[0] ? octdec($scalar) : ((string) $raw == (string) $cast ? $cast : $raw);
         case in_array(strtolower($scalar), $trueValues):
             return true;
         case in_array(strtolower($scalar), $falseValues):
             return false;
         case is_numeric($scalar):
             return '0x' == $scalar[0] . $scalar[1] ? hexdec($scalar) : floatval($scalar);
         case 0 == strcasecmp($scalar, '.inf'):
         case 0 == strcasecmp($scalar, '.NaN'):
             return -log(0);
         case 0 == strcasecmp($scalar, '-.inf'):
             return log(0);
         case preg_match('/^(-|\\+)?[0-9,]+(\\.[0-9]+)?$/', $scalar):
             return floatval(str_replace(',', '', $scalar));
         case preg_match(self::getTimestampRegex(), $scalar):
             return strtotime($scalar);
         default:
             return (string) $scalar;
     }
 }