You are here

class TwigExtension in Twig VarDumper 8.2

Same name and namespace in other branches
  1. 8 src/TwigExtension.php \Drupal\twig_vardumper\TwigExtension
  2. 3.0.x src/TwigExtension.php \Drupal\twig_vardumper\TwigExtension

Twig extension with some useful functions and filters.

Hierarchy

  • class \Drupal\twig_vardumper\TwigExtension extends \Twig\Extension\AbstractExtension

Expanded class hierarchy of TwigExtension

1 string reference to 'TwigExtension'
twig_vardumper.services.yml in ./twig_vardumper.services.yml
twig_vardumper.services.yml
1 service uses TwigExtension
twig_vardumper.twig_extension in ./twig_vardumper.services.yml
Drupal\twig_vardumper\TwigExtension

File

src/TwigExtension.php, line 12

Namespace

Drupal\twig_vardumper
View source
class TwigExtension extends AbstractExtension {

  /**
   * {@inheritdoc}
   */
  public function getFunctions() {
    return [
      new TwigFunction('dump', [
        $this,
        'drupalDump',
      ], [
        'is_safe' => [
          'html',
        ],
        'needs_context' => TRUE,
        'needs_environment' => TRUE,
        'is_variadic' => TRUE,
      ]),
      new TwigFunction('vardumper', [
        $this,
        'drupalDump',
      ], [
        'is_safe' => [
          'html',
        ],
        'needs_context' => TRUE,
        'needs_environment' => TRUE,
        'is_variadic' => TRUE,
      ]),
    ];
  }

  /**
   * {@inheritdoc}
   */
  public function getName() {
    return 'twig_vardumper';
  }

  /**
   * Dumps information about variables.
   *
   * @param \Twig\Environment $env
   *   Enviroment values.
   * @param array $context
   *   Context values.
   * @param array $args
   *   Variables.
   *
   * @return false|string|void
   */
  public function drupalDump(Environment $env, array $context, array $args = []) {
    if (!$env
      ->isDebug()) {
      return;
    }
    ob_start();
    $var_dumper = '\\Symfony\\Component\\VarDumper\\VarDumper';
    if (class_exists($var_dumper)) {
      if (!empty($args)) {
        foreach ($args as $arg) {
          call_user_func($var_dumper . '::dump', $arg);
        }
      }
      else {
        call_user_func($var_dumper . '::dump', $context);
      }
      return ob_get_clean();
    }
    else {
      trigger_error('Could not dump the variable because symfony/var-dumper component is not installed.', E_USER_WARNING);
    }
  }

}

Members

Namesort descending Modifiers Type Description Overrides
TwigExtension::drupalDump public function Dumps information about variables.
TwigExtension::getFunctions public function
TwigExtension::getName public function