在树枝模板中使用kint?

时间:2015-11-18 19:18:24

标签: symfony twig

我不喜欢调试php代码,它很慢并需要重新启动等等。

所以我通常使用kint来输出我不理解的对象,并了解它们的内容。

好吧,多亏了树枝政策,我再也不能打电话给kint的Kint::dump()功能了。

我可以使用{{dump()}}但转储真的很丑陋而且已成为过去。

我的选择是什么?

2 个答案:

答案 0 :(得分:1)

如果您正在使用Symfony全栈框架(我假设,当您使用标记它时),您可以使用{{ dump() }}从Symfony 2.7获得非常好的输出(和{% dump() %}在工具栏中获取它而不是破坏页面布局。)

如果您不使用symfony full-stack框架,则可以将VarDumper组件作为独立组件安装并安装symfony/twig-bridge并注册DumpExtension以获得更好的转储功能

如果您仍想使用Kind,请安装种类库并编写自定义Twig extensiondocs when using Symfony full-stack)。

答案 1 :(得分:1)

回答一个非常古老的问题,但我认为编写一个kint扩展来实现这一点非常容易:从twig模板中进行kinting。

<强> services.yml

services:
  dev.kint_extension:
    class: "AppBundle\\Twig\\KintExtension"
    public: true
    tags:
      - { name: twig.extension }

<强> KintExtension.php

<?php

// src/AppBundle/Twig/KintExtension.php
namespace AppBundle\Twig;

class KintExtension extends \Twig_Extension {

  public function getFunctions(){
    return [
      new \Twig_SimpleFunction('kint', array($this, "kint")),
    ];
  }

  public function getName(){
    return "kint_extension";
  }

  public function kint($var){
    \Kint::dump($var);
  }
}

现在你可以从树枝的任何地方轻松地kint()。

{{ kint(any_variable) }}