for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
/* this file is part of pipelines */
namespace Ktomk\Pipelines\Yaml;
use Ktomk\Pipelines\ErrorCatcher;
use Ktomk\Pipelines\Lib;
use Spyc as MustangostangSpyc;
class Spyc implements ParserInterface
{
/**
* @return bool
*/
public static function isAvailable()
return true;
}
* @param string $path
* @return null|array
public function parseFile($path)
$fsIsStreamUri = Lib::fsIsStreamUri($path);
if (!$fsIsStreamUri && (!is_file($path) || !is_readable($path))) {
return null;
$error = ErrorCatcher::create();
if ($fsIsStreamUri) {
$path = file_get_contents($path);
$array = MustangostangSpyc::YAMLLoad($path);
if ($error->end() || !is_array($array) || array() === $array) {
$keys = array_keys($array);
if ($keys === range(0, count($array) - 1, 1)) {
return $array;
* @param string $buffer
public function parseBuffer($buffer)
$array = MustangostangSpyc::YAMLLoadString($buffer);
return $error->end() ? null : $array;