fenom/extra

Fenom 的扩展包

dev-master 2021-11-11 21:09 UTC

This package is auto-updated.

Last update: 2024-09-12 03:30:48 UTC


README

Fenom 模板引擎的额外插件包。

Composer 包:{"fenom/extra": "dev-master"}。在 Packagist.org 上查看

Build Status

该库是一系列插件的集合。每个插件都以特性形式存在。这种实现方式允许您创建具有自定义插件集合的模板引擎。此外,库中包含类 Fenom\Extra - 包含所有插件的模板引擎,可直接使用。

使用类 Fenom\Extra 代替 Fenom

$fenom = Fenom\Extra::factory($template_dir, $compiled_dir, $options);

或组合您自己的模板器

插件列表

例如

class Templater extends \Fenom {
    use \Fenom\StorageTrait, // add internal storage of variables
        \Fenom\LoaderTrait, // allow add yours loaders for modifiers and tags
        \Fenom\PluginLoaderTrait; // add loader for modifiers and tags in Smarty-like style
    // ...
}

所有插件都在类 \Fenom\Extra 中实现。

存储

插件:Fenom\StorageTrait

<?php
$fenom->assign("var_name", $value);
$fenom->assignByRef("var_name", $value);
$fenom->append("var_name", $value);
$fenom->prepend("var_name", $value);
$vars = $fenom->getVars();
$fenom->assignVars($vars);
$fenom->resetVars();

$fenom->pipe($template_name, $callback);
$fenom->fetch($template_name);
$fenom->display($template_name);

加载器

插件:Fenom\LoaderTrait

插件加载器

插件:Fenom\SimpleLoaderTrait 需要:Fenom\LoaderTrait

<?php
$fenom->addPluginsDir($path);

Smarty

插件:Fenom\SmartyTrait 需要:Fenom\SimpleLoaderTrait

<?php
$fenom->setSmartySupport();  // enable smarty syntax support

支持

  • 在引号字符串中的反引号操作符:{func var="test `$foo[0]` test"}
  • 全局变量 $smarty(无 section 数据)
  • 标签 assign
  • 标签 foreach
  • 标签 section
  • 标签 math

待办事项

  • 在引号字符串中调用插件:{func var="test {counter} test"}
  • 带有 section 数据的全局变量 $smarty

资产