Source of file Yaml.php
Size: 2,145 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Config/Writer/Yaml.php
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Config\Writer; use Zend\Config\Exception; class Yaml extends AbstractWriter { /** * YAML encoder callback * * @var callable */ protected $yamlEncoder; /** * Constructor * * @param callable|string|null $yamlEncoder */ public function __construct($yamlEncoder = null) { if ($yamlEncoder !== null) { $this->setYamlEncoder($yamlEncoder); } else { if (function_exists('yaml_emit')) { $this->setYamlEncoder('yaml_emit'); } } } /** * Get callback for decoding YAML * * @return callable */ public function getYamlEncoder() { return $this->yamlEncoder; } /** * Set callback for decoding YAML * * @param callable $yamlEncoder the decoder to set * @return Yaml * @throws Exception\InvalidArgumentException */ public function setYamlEncoder($yamlEncoder) { if (!is_callable($yamlEncoder)) { throw new Exception\InvalidArgumentException('Invalid parameter to setYamlEncoder() - must be callable'); } $this->yamlEncoder = $yamlEncoder; return $this; } /** * processConfig(): defined by AbstractWriter. * * @param array $config * @return string * @throws Exception\RuntimeException */ public function processConfig(array $config) { if (null === $this->getYamlEncoder()) { throw new Exception\RuntimeException("You didn't specify a Yaml callback encoder"); } $config = call_user_func($this->getYamlEncoder(), $config); if (null === $config) { throw new Exception\RuntimeException("Error generating YAML data"); } return $config; } } |