编写插件

插件可以让Smarty自动载入,或通过register_* API函数在运行时进行注册。 它们还可以通过unregister_* API函数来注销。

当插件是运行时注册的,插件的名称不一定需要遵循下面的命名规则。

如果插件依赖与其他插件提供的功能时(如依赖与一些Smarty自带的插件), 比较好的方法是像下面这样载入需要的插件:


<?php
function smarty_function_yourPlugin(array $params, Smarty_Internal_Template $template)
{
  // 载入依赖的插件
  $template->smarty->loadPlugin('smarty_shared_make_timestamp');
  // 插件代码
}
?>

    

一般而言,Smarty_Internal_Template对象将作为插件的最后一个参数传递, 除了两种例外情况:

  • 修饰器完全不接受Smarty_Internal_Template对象。

  • 为了向上兼容老版本的Smarty,区块插件将 $repeat 作为最后一个参数,因此Smarty对象是倒数第二个参数。