minicli / stencil
模拟模板生成器
Requires
- php: >=8
Requires (Dev)
- friendsofphp/php-cs-fixer: ^3.5
- pestphp/pest: ^1.0
- phpunit/phpunit: ^9.0
This package is auto-updated.
Last update: 2024-09-13 16:41:04 UTC
README
/ˈstɛns(ə)l/ (名词): 一种带有图案或字母剪切的薄纸片、塑料或金属片,通过在孔中涂上墨水或油漆,在下面的表面上产生切割图案。
Minicli/Stencil 是一个用于生成模板的占位符内容替换工具。
Stencil 类似于轻量级模板,没有高级功能(因此它不是一个引擎)。它只需将字符串索引数组或字典中设置的内容替换占位符。
如果你在寻找用于前端视图的模板系统,这不是它!去查看 Twig。Stencil 对于生成骨架内容(例如自动生成类、Markdown 文档和其他遵循一定结构的文件)很有用。
依赖项
Stencil 是一个微型的独立库,只有测试依赖项。
用法
在 Minicli 中
如果你想在一个 Minicli 应用中使用 Stencil,你应该查看包含使用 Stencil 生成基于模板的文档的基本实现的 Minicli Stencil 命令。查看该存储库以获取使用说明。
独立使用
为了在代码库中更自由地包含 Stencil,请通过 Composer 安装独立的 Stencil
composer require minicli/stencil
在你的项目中设置一个目录以存储你的模板
mkdir stencils
cd stencils
创建一个新的包含一些变量的 .tpl
文件
#stencils/mytemplate.tpl ## This is my Template My name is {{ name }} and I am a {{ description }}.
从你的项目中,实例化一个新的 Stencil,传递你设置的模板目录。然后,调用包含你的值的数组的 applyTemplate
方法
<?php $stencil = new Stencil(__DIR__ . '/stencils'); $values = [ 'name' => 'Stencil', 'description' => 'minimalist, dummy template generator.' ]; $parsedContent = $stencil->applyTemplate('mytemplate', $values); var_dump($parsedContent);
string(92) "## This is my Template My name is Stencil and I am a minimalist, dummy template generator.."
查询模板变量
你也可以获取模板中设置的变量,以便逐步构建你的值数组,例如通过命令行提示进行交互式操作。
这是一个示例代码,它从 Stencil 模板中收集变量,然后提示用户每个找到的变量,返回一个可以随后用于 $stencil->applyTemplate()
的数组。
$stencil = new Stencil(__DIR__ . '/stencils'); $template = 'mytemplate'; $values = []; $variables = $stencil->scanTemplateVars($template); echo "Building template $template\n"; foreach ($variables as $variable) { echo ucfirst($variable); $values[$variable] = readline(': '); } echo $stencil->applyTemplate($template, $values);