1. Go to this page and download the library: Download pug-php/pug-symfony library. Choose the download type require.
2. Extract the ZIP file and open the index.php.
3. Add this code to the index.php.
<?php
require_once('vendor/autoload.php');
/* Start to develop here. Best regards https://php-download.com/ */
namespace App\Controller;
use Pug\PugSymfonyEngine;
use Symfony\Component\HttpKernel\Attribute\AsController;
use Symfony\Component\Routing\Annotation\Route;
#[AsController]
class MyController
{
#[Route('/contact')]
public function contactAction(PugSymfonyEngine $pug)
{
return $pug->renderResponse('contact/contact.pug', [
'name' => 'Us',
]);
}
}
namespace App\Controller;
use Pug\Symfony\Traits\PugRenderer;
use Symfony\Component\HttpKernel\Attribute\AsController;
use Symfony\Component\Routing\Annotation\Route;
#[AsController]
class MyController
{
use PugRenderer;
#[Route('/contact')]
public function contactAction()
{
return $this->render('contact/contact.pug', [
'name' => 'Us',
]);
}
}
// In a controller method
#[Route('/contact')]
public function contactAction(\Pug\PugSymfonyEngine $pug)
{
$pug->setOptions(array(
'pretty' => true,
'pugjs' => true,
// ...
));
$pug->share('globalVar', 'foo');
$pug->getRenderer()->addKeyword('customKeyword', $bar);
return $pug->renderResponse('contact/contact.pug', [
'name' => 'Us',
]);
}
// src/Service/PugInterceptor.php
namespace App\Service;
use Pug\Symfony\Contracts\InterceptorInterface;
use Pug\Symfony\RenderEvent;
use Symfony\Contracts\EventDispatcher\Event;
class PugInterceptor implements InterceptorInterface
{
public function intercept(Event $event)
{
if ($event instanceof RenderEvent) {
// Here you can any method on the engine or the renderer:
$event->getEngine()->getRenderer()->addKeyword('customKeyword', $bar);
$event->getEngine()->getRenderer()->addExtension(MyPlugin::class);
// Or/and manipulate the local variables passed to the view:
$locals = $event->getLocals();
$locals['foo']++;
$event->setLocals($locals);
// Or/and get set the name of the view that is about to be rendered:
if ($event->getName() === 'profile.pug') {
// if user variable is missing
if (!isset($event->getLocals()['user'])) {
$event->setName('search-user.pug');
// Render the search-user.pug instead of profile.pug
}
}
}
}
}
class PugInterceptor implements InterceptorInterface
{
private $service;
public function __construct(MyOtherService $service)
{
$this->service = $service;
}
public function intercept(Event $event)
{
if ($event instanceof RenderEvent) {
$event->getEngine()->share('anwser', $this->service->getAnwser());
}
}
}
shell
composer
shell
php bin/console assets:publish --env=prod
Loading please wait ...
Before you can download the PHP files, the dependencies should be resolved. This can take some minutes. Please be patient.