Smarty 插件开发

时间:2021-03-30 04:50:59

插件包含了:

  • functions
  • modifiers
  • block functions
  • compiler functions
  • prefilters
  • postfilters
  • outputfilters
  • resources
  • inserts

除了资源插件以外,为了向上兼容还是保留了通过register_* API来注册插件的方式。 如果你不是使用API方式而是使用直接修改$custom_funcs$custom_mods等方式,那么你需要调整你的代码,改为通过API方式或 转换成自定义插件。

插件如何工作

插件是按需载入的。当特定的修饰器,函数,资源等被调用的时候插件才会被载入。 而且,即使同一请求中有多个Smarty实例在运行,每个资源也只会被载入一次。

前置/后置过滤器和输出过滤器稍微有些不同。 虽然它们并没有在模板中使用,但是当模板执行的时候,它们必须通过API被注册或者被明确载入。 相同类型的过滤器执行的顺序会依据它们注册或载入的先后顺序。

插件目录变量可以是一个路径的字符串或者是包含多个路径的数组。 安装插件的方法是直接把插件文件放置在这些目录下,Smarty会自动按需使用。

命名规则

插件文件和函数必须遵循特定的命名规则以便Smarty识别。

插件文件命名规则:

type.name.php

  • 其中type是以下任一种插件类型:

    • function
    • modifier
    • block
    • compiler
    • prefilter
    • postfilter
    • outputfilter
    • resource
    • insert

更多:http://www.smarty.net/docs/zh_CN/plugins.naming.conventions.tpl

http://blog.51yip.com/smarty/926.html