orbis-labs / pug-symfony
Pug template engine for Symfony
Requires
- php: >=5.5.9
- pug-php/pug: ^2.1.3
- pug-php/pug-assets: ^1.0.1
Requires (Dev)
- codeclimate/php-test-reporter: ^0.4.0
- phpunit/phpunit: >=4.8 <6.0
- symfony/symfony: ~3.2
This package is not auto-updated.
Last update: 2024-11-23 01:51:43 UTC
README
Pug template engine for Symfony
Install
In the root directory of your Symfony project, open a terminal and enter:
composer require orbis-labs/pug-symfony
Add in app/config/services.yml:
services: templating.engine.pug: class: PugBundle\PugTemplateEngine arguments: ["@kernel"]
Add jade in the templating.engines setting in app/config/config.yml:
... templating: engines: ['pug', 'twig', 'php']
Configure
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'); $pug->setOptions(array( '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: https://github.com/pug-php/pug And methods directly available on the service: https://github.com/pug-php/pug-symfony/blob/master/src/Jade/JadeSymfonyEngine.php
Usage
Create jade views by creating files with .pug extension in app/Resources/views such as contact.html.pug with some Jade like this:
h1
| Hello
=name
Then call it in your controller:
/** * @Route("/contact") */ public function contactAction() { return $this->render('contact/contact.html.pug', [ 'name' => 'Bob', ]); }
Deployment
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:
public function registerBundles() { $bundles = [ ... new PugBundle\PugBundle(), ];
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