Twig and Blade templates debugging

Posted on by Anton Monakov

In PhpStorm 2019.1, we’ve implemented debugging of Twig and Blade templates.

The problem was that template files are not the files your application runs. They are first compiled into regular PHP and saved to a cache directory, and then the application runs those compiled files.

So before PhpStorm 2019.1, your only option was to identify the compiled file, something like b84f5d6c0f0d85bb9187843.php, locate the line you want to place a breakpoint on, and then debug this file instead.

Luckily, things have changed, and you can now debug your template files directly – there’s no difference between them and regular PHP files in this regard.

To start debugging your templates:

  1. Set up your PHP debugger.
  2. In PhpStorm, go to Settings/Preferences | Languages & Frameworks | PHP | Debug | Templates and specify the directories where your compiled files are stored:

    templates_directories

In the case of Twig, you also need to set the following configuration options:
debug: true
auto_reload: true

In the case of Laravel, just make sure you’re using version 5.8 or later, and you’re good to go.

Now, set a breakpoint directly in your template file, just like you would with a PHP file, and begin step debugging!

twig_breakpoint_hit

New to debugging in PhpStorm? Check out the Ultimate Debugging Guide or this Quickstart video on getting started with debugging in Docker.

Your JetBrains PhpStorm Team
The Drive to Develop

Comments below can no longer be edited.

4 Responses to Twig and Blade templates debugging

  1. da ha says:

    May 17, 2019

    Explain how to do this in Drupal please. Cant find a cache path.

    • linwuhen says:

      May 21, 2019

      1.you need enable twig cache first, like:
      twig.config:
      debug: true
      auto_reload: true
      cache: true
      2.now you can find cache path in: docroot/sites/default/files/php/twig

  2. Ti Mo says:

    June 26, 2020

    Does ist work with cache inside docker? How?

  3. WildPress WordPress Experts says:

    June 26, 2020

    I’m trying to set breakpoints for a blade template inside a WordPress theme (roots/sage) but without any success triggering the breakpoints. I’ve setup the cache directory correctly, what else needs to be done to get it working, please?

Subscribe

Subscribe for updates