kylekatarnls/jade-symfony

此包已废弃,不再维护。没有建议的替代包。

Symfony 的 Pug 模板引擎

2.4.0 2017-10-10 18:36 UTC

README

此仓库现在位于 https://github.com/pug-php/pug-symfony

Pug-Symfony

Latest Stable Version Build Status StyleCI Test Coverage Code Climate

Symfony 的 Pug 模板引擎

安装

在您的 Symfony 项目的根目录下,打开终端并输入

composer require pug-php/pug-symfony

当系统询问是否自动安装所需设置时,输入 yes;或者如果您更喜欢,请按照以下手动安装步骤进行。

手动替代步骤

app/config/config.yml 中的 templating.engines 设置中添加 pug,通过合并以下设置到您的配置中

services:
    templating.engine.pug:
        class: Pug\PugSymfonyEngine
        arguments: ["@kernel"]

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

为了使用 pug cli 命令,您还需要将 Pug\PugSymfonyBundle\PugSymfonyBundle() 添加到您的 AppKernel.php

配置

您可以通过访问 Symfony 中的容器(从控制器或内核)来设置 pug 选项。

$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);

请参阅 pug-php README 中的选项: https://github.com/pug-php/pug 和在服务上直接可用的方法: https://github.com/pug-php/pug-symfony/blob/master/src/Jade/JadeSymfonyEngine.php

初始选项也可以通过 config.yml 中的参数传入

parameters:
    pug:
        expressionLanguage: php

使用方法

app/Resources/views 中创建具有 .pug 扩展名的文件以创建 jade 视图,例如 contact.pug,其中包含一些类似 jade 的内容

h1
  | Hello
  =name

然后在您的控制器中调用它

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

部署

在生产中,您最好预先渲染所有模板以提高性能。为此,您需要将 Pug\PugSymfonyBundle\PugSymfonyBundle 添加到您的已注册的包中。

app/AppKernel.phpregisterBundles() 方法中,添加 Pug 包(如果您使用自动化脚本来安装 pug-symfony 2.3 或更高版本,这已被自动完成)

public function registerBundles()
{
    $bundles = [
        ...
        new Pug\PugSymfonyBundle\PugSymfonyBundle(),
    ];

这将使 assets:publish 命令可用,现在每次部署您的应用程序时,请输入以下命令: php bin/console assets:publish --env=prod