pug / yii2

Yii2 Pug (前身为Jade) 扩展

安装次数: 8,455

依赖者: 2

建议者: 0

安全: 0

星标: 7

关注者: 2

分支: 0

开放问题: 0

类型:yii2-extension

1.2.0 2021-05-02 18:13 UTC

This package is auto-updated.

Last update: 2024-08-29 04:37:42 UTC


README

此扩展为Pug模板的Yii框架2.0应用程序提供了一个视图渲染器。

License Latest Stable Version Travis CI Build Status Test Coverage Issue Count StyleCI

支持

安装

安装此扩展的首选方式是通过composer

运行以下命令

composer require pug/yii2

或者

"pug/yii2": "^1.0",

将其添加到你的composer.json文件的require部分。

配置

<?php

return [
  // ...
  'components' => [
    // ...
    'view' => [
      // ...
      'renderers' => [
        'pug' => 'Pug\\Yii\\ViewRenderer',
      ],
    ],
  ],
];

你也可以使用其他pug渲染器,如phugtale-pug

<?php

return [
  // ...
  'components' => [
    // ...
    'view' => [
      // ...
      'renderers' => [
        'pug' => [
          'class'    => 'Pug\\Yii\\ViewRenderer',
          'renderer' => 'Phug\\Renderer',
        ],
      ],
    ],
  ],
];

Phug和Pug-php(默认渲染器)在安装最新的pug/yii2版本时将自动安装,对于其他pug渲染器,需要替换渲染器类并包含它。

例如,对于Tale-pug,使用composer require talesoft/tale-pug,然后在上述配置示例中将'Tale\\Pug\\Renderer'替换为'Tale\\Pug\\Renderer'

缓存路径和视图路径

默认情况下,此扩展使用'@runtime/pug/cache'来存储编译后的模板,并在'@app/views'中查找要编译的模板。

你可以通过在配置中指定cachePath和/或viewPath来更改此设置,例如

return [
  // ...
  'components' => [
    // ...
    'view' => [
      // ...
      'renderers' => [
        'pug' => [
          'class'     => 'Pug\\Yii\\ViewRenderer',
          'cachePath' => '@app/runtime/Pugcache',
          'viewPath'  => '@app/themes/dark/templates/views',
        ],
      ],
    ],
  ],
];

pug/yii提供了2个全局变量:appYii::$app)和view(控制器中给->render()提供的视图路径)。这意味着

  • 如果你设置了appview共享变量,它们将被系统值覆盖。
  • 如果你将appview局部变量传递给->render()方法,它们将优先于系统值。

为了避免此类名称冲突,你可以将它们打包成一个对象,并以你选择的名称存储在共享变量中。

return [
  // ...
  'components' => [
    // ...
    'view' => [
      // ...
      'renderers' => [
        'pug' => [
          'class'           => 'Pug\\Yii\\ViewRenderer',
          // ...
          'systemVariable'  => '_yii',
        ],
      ],
    ],
  ],
];

使用此配置,appview不再是保留名称(可以用于你自己的局部变量或共享变量),只有_yii是,因此你可以这样获取app和view

h1=_yii.view.defaultExtension
p=_yii.app.version

或者如果你将expressionLanguage选项设置为"php"

h1=$_yii->view->defaultExtension
p=$_yii->app->getVersion()

致谢

此解决方案合并了两个项目:rmrevin/yii2-pug(支持pug-php 2的原生分支)和jacmoe/yii2-tale-pug(tale-pug和tale-jade的Yii2解决方案),最终支持了pug-php 3和phug引擎。