pug/slim

Slim 的 Pug 模板引擎适配器

1.3.0 2021-05-02 16:37 UTC

This package is auto-updated.

Last update: 2024-09-13 16:42:16 UTC


README

Latest Stable Version Build Status Code Climate Test Coverage Issue Count StyleCI

有关模板引擎的详细信息,请访问 phug-lang.com

安装

使用 Composer 安装

composer require pug/slim

与 Slim 3 一起使用

use Slim\App;
use Slim\Pug\PugRenderer;

include 'vendor/autoload.php';

$slimOptions = []; // here you can pass Slim settings
$app = PugRenderer::create(new App($slimOptions), './templates');

$app->get('/hello/{name}', function ($request, $response, $args) {
    return $this->renderer->render($response, 'hello.pug', $args);
});

$app->run();

PS:如果您没有传递应用程序给 create 方法,我们将自动初始化一个,因此您只需做

use Slim\Pug\PugRenderer;

include 'vendor/autoload.php';

$app = PugRenderer::create(null, './templates');

与任何 PSR-7 项目一起使用

//Construct the View
$pugView = new PugRenderer('./path/to/templates', [
  'option' => 'foobar',
]);

//Render a Template
$response = $pugView->render(new Response(), '/path/to/template.pug', $yourData);

模板变量

您可以为您的渲染器添加变量,这些变量将可供您渲染的所有模板使用。

// via the constructor
$templateVariables = [
  'title' => 'Title',
];
$pugView = new PugRenderer('./path/to/templates', [], $templateVariables);

// or setter
$pugView->setAttributes($templateVariables);

// or individually
$pugView->addAttribute($key, $value);

通过 ->render() 传递的数据优先于属性。

$templateVariables = [
  'title' => 'Title',
];
$pugView = new PhpRenderer('./path/to/templates', $templateVariables);

//...

$pugView->render($response, $template, [
    'title' => 'My Title',
]);
// In the view above, the $title will be "My Title" and not "Title"

默认情况下,使用 pug-php。但您可以指定其他引擎

$app = PugRenderer::create(null, null, [
  'renderer' => \Phug\Renderer::class,
]);

PS:Phug 自 Pug-php 3 内部使用以来,已自动安装。但您也可以安装不同的渲染器引擎,例如 tale-pug

composer require talesoft/tale-pug
$app = PugRenderer::create(null, null, [
  'renderer' => \Tale\Pug\Renderer::class,
]);

请注意,在这种情况下,您无法保证所有选项都将正常工作。

参考

致谢

此项目是从 https://github.com/MarcelloDuarte/pug-slim 分支出来的,并添加了 phug、pug-php 3、tale-jade 和 tale-pug 支持。