pug / yii2
Yii2 Pug (前身为Jade) 扩展
资助包维护!
kylekatarnls
Open Collective
Tidelift
Requires
- php: >=5.4.0
- pug-php/pug: ^2.7.6 || ^3.4.1
- yiisoft/yii2: ^2.0.13
Requires (Dev)
- phpunit/phpunit: ^8.5.15
- yidas/yii2-composer-bower-skip: ^2.0.13
- yiisoft/yii2-bootstrap: ^2.0.10
Replaces
- jacmoe/yii2-pug: 1.5.5
- rmrevin/yii2-pug: 0.0.1
This package is auto-updated.
Last update: 2024-08-29 04:37:42 UTC
README
此扩展为Pug模板的Yii框架2.0应用程序提供了一个视图渲染器。
支持
安装
安装此扩展的首选方式是通过composer。
运行以下命令
composer require pug/yii2
或者
"pug/yii2": "^1.0",
将其添加到你的composer.json
文件的require
部分。
配置
<?php return [ // ... 'components' => [ // ... 'view' => [ // ... 'renderers' => [ 'pug' => 'Pug\\Yii\\ViewRenderer', ], ], ], ];
你也可以使用其他pug渲染器,如phug或tale-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个全局变量:app
(Yii::$app
)和view
(控制器中给->render()
提供的视图路径)。这意味着
- 如果你设置了app或view共享变量,它们将被系统值覆盖。
- 如果你将app或view局部变量传递给
->render()
方法,它们将优先于系统值。
为了避免此类名称冲突,你可以将它们打包成一个对象,并以你选择的名称存储在共享变量中。
return [ // ... 'components' => [ // ... 'view' => [ // ... 'renderers' => [ 'pug' => [ 'class' => 'Pug\\Yii\\ViewRenderer', // ... 'systemVariable' => '_yii', ], ], ], ], ];
使用此配置,app和view不再是保留名称(可以用于你自己的局部变量或共享变量),只有_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引擎。