12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- <?php
- /*
- * This file is part of the symfony package.
- * (c) Fabien Potencier <fabien.potencier@symfony-project.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- require_once(dirname(__FILE__).'/sfYamlInline.class.php');
- /**
- * sfYamlDumper class.
- *
- * @package symfony
- * @subpackage util
- * @author Fabien Potencier <fabien.potencier@symfony-project.com>
- * @version SVN: $Id: sfYamlDumper.class.php 10575 2008-08-01 13:08:42Z nicolas $
- */
- class sfYamlDumper
- {
- /**
- * Dumps a PHP value to YAML.
- *
- * @param mixed The PHP value
- * @param integer The level where you switch to inline YAML
- * @param integer The level o indentation indentation (used internally)
- *
- * @return string The YAML representation of the PHP value
- */
- public function dump($input, $inline = 0, $indent = 0)
- {
- $output = '';
- $prefix = $indent ? str_repeat(' ', $indent) : '';
- if ($inline <= 0 || !is_array($input) || empty($input))
- {
- $output .= $prefix.sfYamlInline::dump($input);
- }
- else
- {
- $isAHash = array_keys($input) !== range(0, count($input) - 1);
- foreach ($input as $key => $value)
- {
- $willBeInlined = $inline - 1 <= 0 || !is_array($value) || empty($value);
- $output .= sprintf('%s%s%s%s',
- $prefix,
- $isAHash ? sfYamlInline::dump($key).':' : '-',
- $willBeInlined ? ' ' : "\n",
- $this->dump($value, $inline - 1, $willBeInlined ? 0 : $indent + 2)
- ).($willBeInlined ? "\n" : '');
- }
- }
- return $output;
- }
- }
|