icanboogie / render
使用各种模板引擎渲染模板。
v0.6.0
2018-03-17 23:51 UTC
Requires
- php: >=5.6
- icanboogie/event: ^3.0
README
一个用于使用各种模板引擎渲染模板的API。
安装
composer require icanboogie/render
渲染引擎
模板可以使用各种模板引擎进行渲染。
以下示例演示了如何使用内置的PHP模板引擎创建一个引擎提供者。
<?php /* @var ICanBoogie\Render\PHPEngine $engine */ /* @var string $template_pathname */ /* @var mixed $content */ /* @var array<string, mixed> $variables */ $rendered = $engine->render($template_pathname, $content, $variables);
注意:目前,该软件包仅提供渲染PHP模板的引擎,可以通过第三方软件包(如render-engine-markdown或render-engine-patron)扩展可用引擎。
渲染引擎提供者
通过引擎提供者获取渲染引擎。以下提供者是内置的
- EngineProvider\Container:从PSR容器提供引擎。
- EngineProvider\Immutable:从不可变集合提供引擎。
- EngineProvider\Mutable:从可变集合提供引擎。
以下示例演示了如何从不可变提供者获取用于.php
扩展的引擎。
<?php use ICanBoogie\Render\EngineProvider\Immutable; use ICanBoogie\Render\PHPEngine; $engines = new Immutable([ '.php' => new PHPEngine() ]); echo $engines->engine_for_extension('.php')::class; // ICanBoogie\Render\PHPEngine
所有引擎提供者都是可遍历的,此功能可用于收集支持的扩展。
<?php /* @var EngineProvider $engines */ $extensions = array_keys(iterator_to_array($engines)); echo implode(', ', $extensions); // .php
正在渲染的模板的路径名
引擎应使用Engine::VAR_TEMPLATE_PATHNAME
变量来定义正在渲染的模板的路径名,这样就可以轻松跟踪正在渲染哪个模板以及从哪个位置。
模板解析器
模板解析器试图将模板名称与实际模板文件相匹配。可以为解析器定义一系列搜索路径。
渲染器
使用Renderer实例使用主题和选项渲染模板。使用引擎集合和模板解析器查找适合渲染的模板。
持续集成
项目由GitHub actions持续测试。
行为准则
本项目遵循贡献者行为准则。通过参与本项目及其社区,您被期望遵守此准则。
贡献
有关详细信息,请参阅CONTRIBUTING。
许可
icanboogie/render是在BSD-3-Clause许可下发布的。