moved integration between the Yaml component and Twig to a Symfony Bridge
This commit is contained in:
parent
e912b347f0
commit
82dec51b30
67
src/Symfony/Bridge/Twig/Extension/YamlExtension.php
Normal file
67
src/Symfony/Bridge/Twig/Extension/YamlExtension.php
Normal file
@ -0,0 +1,67 @@
|
|||||||
|
<?php
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This file is part of the Symfony package.
|
||||||
|
*
|
||||||
|
* (c) Fabien Potencier <fabien@symfony.com>
|
||||||
|
*
|
||||||
|
* For the full copyright and license information, please view the LICENSE
|
||||||
|
* file that was distributed with this source code.
|
||||||
|
*/
|
||||||
|
|
||||||
|
namespace Symfony\Bridge\Twig\Extension;
|
||||||
|
|
||||||
|
use Symfony\Component\Yaml\Dumper as YamlDumper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Provides integration of the Yaml component with Twig.
|
||||||
|
*
|
||||||
|
* @author Fabien Potencier <fabien@symfony.com>
|
||||||
|
*/
|
||||||
|
class YamlExtension extends \Twig_Extension
|
||||||
|
{
|
||||||
|
/**
|
||||||
|
* {@inheritdoc}
|
||||||
|
*/
|
||||||
|
public function getFilters()
|
||||||
|
{
|
||||||
|
return array(
|
||||||
|
'yaml_encode' => new \Twig_Filter_Method($this, 'encode'),
|
||||||
|
'yaml_dump' => new \Twig_Filter_Method($this, 'dump'),
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function encode($input, $inline = 0)
|
||||||
|
{
|
||||||
|
static $dumper;
|
||||||
|
|
||||||
|
if (null === $dumper) {
|
||||||
|
$dumper = new YamlDumper();
|
||||||
|
}
|
||||||
|
|
||||||
|
return $dumper->dump($input, $inline);
|
||||||
|
}
|
||||||
|
|
||||||
|
public function dump($value)
|
||||||
|
{
|
||||||
|
if (is_resource($value)) {
|
||||||
|
return '%Resource%';
|
||||||
|
}
|
||||||
|
|
||||||
|
if (is_array($value) || is_object($value)) {
|
||||||
|
return '%'.gettype($value).'% '.$this->encode($value);
|
||||||
|
}
|
||||||
|
|
||||||
|
return $value;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the name of the extension.
|
||||||
|
*
|
||||||
|
* @return string The extension name
|
||||||
|
*/
|
||||||
|
public function getName()
|
||||||
|
{
|
||||||
|
return 'yaml';
|
||||||
|
}
|
||||||
|
}
|
@ -14,7 +14,6 @@ namespace Symfony\Bundle\TwigBundle\Extension;
|
|||||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||||
use Symfony\Bundle\TwigBundle\TokenParser\IncludeTokenParser;
|
use Symfony\Bundle\TwigBundle\TokenParser\IncludeTokenParser;
|
||||||
use Symfony\Bundle\TwigBundle\TokenParser\RenderTokenParser;
|
use Symfony\Bundle\TwigBundle\TokenParser\RenderTokenParser;
|
||||||
use Symfony\Component\Yaml\Dumper as YamlDumper;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
@ -45,8 +44,6 @@ class TemplatingExtension extends \Twig_Extension
|
|||||||
public function getFilters()
|
public function getFilters()
|
||||||
{
|
{
|
||||||
return array(
|
return array(
|
||||||
'yaml_encode' => new \Twig_Filter_Method($this, 'yamlEncode'),
|
|
||||||
'dump' => new \Twig_Filter_Method($this, 'dump'),
|
|
||||||
'abbr_class' => new \Twig_Filter_Method($this, 'abbrClass', array('is_safe' => array('html'))),
|
'abbr_class' => new \Twig_Filter_Method($this, 'abbrClass', array('is_safe' => array('html'))),
|
||||||
'abbr_method' => new \Twig_Filter_Method($this, 'abbrMethod', array('is_safe' => array('html'))),
|
'abbr_method' => new \Twig_Filter_Method($this, 'abbrMethod', array('is_safe' => array('html'))),
|
||||||
'format_args' => new \Twig_Filter_Method($this, 'formatArgs', array('is_safe' => array('html'))),
|
'format_args' => new \Twig_Filter_Method($this, 'formatArgs', array('is_safe' => array('html'))),
|
||||||
@ -111,17 +108,6 @@ class TemplatingExtension extends \Twig_Extension
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function yamlEncode($input, $inline = 0)
|
|
||||||
{
|
|
||||||
static $dumper;
|
|
||||||
|
|
||||||
if (null === $dumper) {
|
|
||||||
$dumper = new YamlDumper();
|
|
||||||
}
|
|
||||||
|
|
||||||
return $dumper->dump($input, $inline);
|
|
||||||
}
|
|
||||||
|
|
||||||
public function abbrClass($class)
|
public function abbrClass($class)
|
||||||
{
|
{
|
||||||
return $this->container->get('templating.helper.code')->abbrClass($class);
|
return $this->container->get('templating.helper.code')->abbrClass($class);
|
||||||
@ -162,19 +148,6 @@ class TemplatingExtension extends \Twig_Extension
|
|||||||
return $this->container->get('templating.helper.code')->formatFileFromText($text);
|
return $this->container->get('templating.helper.code')->formatFileFromText($text);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function dump($value)
|
|
||||||
{
|
|
||||||
if (is_resource($value)) {
|
|
||||||
return '%Resource%';
|
|
||||||
}
|
|
||||||
|
|
||||||
if (is_array($value) || is_object($value)) {
|
|
||||||
return '%'.gettype($value).'% '.$this->yamlEncode($value);
|
|
||||||
}
|
|
||||||
|
|
||||||
return $value;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the name of the extension.
|
* Returns the name of the extension.
|
||||||
*
|
*
|
||||||
|
@ -48,6 +48,10 @@
|
|||||||
<argument type="service" id="router" />
|
<argument type="service" id="router" />
|
||||||
</service>
|
</service>
|
||||||
|
|
||||||
|
<service id="twig.extension.yaml" class="Symfony\Bridge\Twig\Extension\YamlExtension" public="false">
|
||||||
|
<tag name="twig.extension" />
|
||||||
|
</service>
|
||||||
|
|
||||||
<service id="twig.extension.form" class="Symfony\Bundle\TwigBundle\Extension\FormExtension" public="false">
|
<service id="twig.extension.form" class="Symfony\Bundle\TwigBundle\Extension\FormExtension" public="false">
|
||||||
<tag name="twig.extension" />
|
<tag name="twig.extension" />
|
||||||
<argument>%twig.form.resources%</argument>
|
<argument>%twig.form.resources%</argument>
|
||||||
|
@ -99,7 +99,7 @@
|
|||||||
{% for key, value in collector.sessionattributes %}
|
{% for key, value in collector.sessionattributes %}
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{ key }}</th>
|
<th>{{ key }}</th>
|
||||||
<td>{{ value|dump }}</td>
|
<td>{{ value|yaml_dump }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
@ -6,7 +6,7 @@
|
|||||||
{% for key in bag.keys %}
|
{% for key in bag.keys %}
|
||||||
<tr>
|
<tr>
|
||||||
<th>{{ key }}</th>
|
<th>{{ key }}</th>
|
||||||
<td>{{ bag.get(key)|dump }}</td>
|
<td>{{ bag.get(key)|yaml_dump }}</td>
|
||||||
</tr>
|
</tr>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</table>
|
</table>
|
||||||
|
Reference in New Issue
Block a user