rareloop / primer-template-engine-twig
Primer 的 Twig 模板引擎,而非默认的 (Handlebars)
Requires
- php: >=7.0
- twig/twig: ^2.0.0
Requires (Dev)
- phpunit/phpunit: 5.*
- rareloop/primer-core: 2.0.*
This package is auto-updated.
Last update: 2024-09-12 04:26:33 UTC
README
这是一个为 Primer 定制的模板引擎,它使用 Twig 而不是默认的 (Handlebars)。
安装
-
在您的 Primer 安装中的
composer.json
文件中,将以下内容替换为"rareloop/primer-template-engine-handlebars": "dev-master"
然后
"rareloop/primer-template-engine-twig": "1.0.*"
-
运行
composer update
。 -
修改您的
bootstrap/start.php
文件,并将Primer::start
调用改为包括templateClass
,例如:$primer = Primer::start(array( 'basePath' => __DIR__.'/..', 'templateClass' => Rareloop\Primer\TemplateEngine\Twig\Template::class, ));
-
将您模式或视图中的所有
.hbs
文件替换为 `.twig` 文件。如果您不希望手动进行此操作,可以从 此处 下载基础 Primer 文件( Twig 格式)。
使用方法
相互包含模式
任何模式都可以通过使用标准 include
语法包含在其他模式中,例如:
<div class="sub-pattern"> {% include 'elements/forms/input' %} </div>
有关使用 {% include %}
和操作传入上下文的信息,请参阅 Twig 网站。
扩展模板
默认情况下,Primer 将所有页面模板包裹在通用的视图( views/template.twig
)中。当使用 {% extends %}
时,这种包裹有时是不希望的,在这种情况下,您可以通过几种方式禁用此行为。
-
在单个页面模板上。将以下内容添加到模板的
data.json
文件中:{ "primer": { "view": "custom-view" } }
-
全局。将
wrapTemplate: false
添加到bootstrap/start.php
中的Primer::start
调用中,例如:$primer = Primer::start([ 'basePath' => __DIR__.'/..', 'templateClass' => TwigTemplateEngine::class, 'wrapTemplate' => false, ]);
Twig 模板缓存
默认情况下,Primer 使用项目根目录中的名为 cache
的目录来存储缓存文件。要将其更改为其他位置,您可以在 bootstrap/start.php
中设置一个替代项,例如:
$primer = Primer::start(array( 'basePath' => __DIR__.'/..', 'cachePath' => 'absolute/path/to/cache/dir', 'templateClass' => Rareloop\Primer\TemplateEngine\Twig\Template::class, ));
自定义事件
大多数 Primer 事件仍然可用,此包还添加了一些特定于引擎的事件