This package is abandoned and no longer maintained. No replacement package was suggested.

Pug template engine for Symfony

2.4.0 2017-10-10 18:36 UTC


This repository now lives on


Latest Stable Version Build Status StyleCI Test Coverage Code Climate

Pug template engine for Symfony


In the root directory of your Symfony project, open a terminal and enter:

composer require pug-php/pug-symfony

When your are asked to install automatically needed settings, enter yes ; or if you prefer, follow the manual installation steps below.

Manual alternative steps

Add pug in the templating.engines setting in app/config/config.yml by merging the following to your settings:

        class: Pug\PugSymfonyEngine
        arguments: ["@kernel"]

        engines: ['pug', 'twig', 'php']

In order to use pug cli commands, you will also need to add Pug\PugSymfonyBundle\PugSymfonyBundle() to your AppKenel.php.


You can set pug options by accessing the container (from controller or from the kernel) in Symfony.

$services = $kernel->getContainer();
$pug = $services->get('templating.engine.pug');
  'pretty' => true,
  'pugjs' => true,
  // ...
// You can get the Pug engine to call any method available in pug-php
$pug->getEngine()->share('globalVar', 'foo');
$pug->getEngine()->addKeyword('customKeyword', $bar);

See the options in the pug-php README: And methods directly available on the service:

Initial options can also be passed in parameters in your config.yml:

        expressionLanguage: php


Create jade views by creating files with .pug extension in app/Resources/views such as contact.pug with some Jade like this:

  | Hello

Then call it in your controller:

 * @Route("/contact")
public function contactAction()
    return $this->render('contact/contact.pug', [
        'name' => 'Bob',


In production, you better have to pre-render all your templates to improve performances. To do that, you have to add Pug\PugSymfonyBundle\PugSymfonyBundle in your registered bundles.

In app/AppKernel.php, in the registerBundles() method, add the Pug bundle (this has been done automatically if you installed pug-symfony 2.3 or above with automated script):

public function registerBundles()
    $bundles = [
        new Pug\PugSymfonyBundle\PugSymfonyBundle(),

This will make the assets:publish command available, now each time you deploy your app, enter the command below: php bin/console assets:publish --env=prod