在项目中一直使用Smarty作为模板引擎,原先将Smarty类库包含在项目代码中,集成很方便,但随着时间的迁移,升级很麻烦。由此想利用FreeBSD的ports来维护版本更新,这样的话,需要把Smarty类库独立到外部。
安装/usr/ports/www/smarty后,会存储到/usr/local/share/smarty目录,需要把这个目录加到php.ini文件中的include_path中。
然后,在项目代码中require_once('Smarty.class.php')即可完成载入。
这个时候,如果我们有自己开发的Smarty插件,需要手动拷贝到/usr/local/share/smarty/plugins目录,这样难以维护。
研究了一下Smarty源代码,发现Smarty的plugins_dir成员变量是一个数组,我们可以通过把我们自己开发的插件目录引入此数组实现自有插件的导入。
很简单,在代码初始部分,添加类似代码:
array_push($this->plugins_dir, '/path/to/your/smarty/plugins');
插件命名:要以“smarty_function_ ” 或者“smarty_modifier_”为前缀,前一种情况是PHP本身没有的函数,后一种是修改PHP本身有的函数!!
出自:http://www.dirk.pdx.cn/blog/diary,272591.html
分享到:
相关推荐
5. $plugins_dir:定义Smarty查找插件的目录。默认是SMARTY_DIR下的"plugins"。可以设置多个目录, Smarty会按顺序查找。 ```php $smarty->plugins_dir = array('/path/to/first/plugins', '/path/to/second/...
$plugins_dir [插件目录变量] $debugging [调试变量] $debug_tpl [调试模板] $debugging_ctrl [调试控制变量] $global_assign [全局配置变量] $undefined [未定义变量] $autoload_filters [自动加载过滤器变量...
$plugins_dir [插件目录变量] $debugging [调试变量] $debug_tpl [调试模板] $debugging_ctrl [调试控制变量] $global_assign [全局配置变量] $undefined [未定义变量] $autoload_filters [自动加载过滤器变量...
6. **插件系统**: Smarty允许开发者自定义函数(plugins),如过滤器、函数、修饰符等,扩展模板的功能。 7. **配置管理**:可以设置 Smarty 的全局配置,如模板目录、编译目录、缓存目录等,通过`$smarty->config...
- **$plugins_dir**: 插件目录。 - **$debugging**: 是否开启调试模式。 - **$caching**: 缓存设置。 - **$cache_dir**: 缓存文件的目录。 - **$cache_lifetime**: 缓存有效期。 - **$security**: 安全设置。 以上...
- **$plugins_dir**: 插件文件所在的目录。 - **$debugging**: 是否启用调试模式。 - **$debug_tpl**: 调试时显示的模板名称。 - **$debugging_ctrl**: 调试控制变量。 以上是《Smarty中文使用手册》的关键知识...
例如,设置缓存目录的方法已从 `$smarty->cache_dir` 更改为使用 getters 和 setters 的形式,如 `$smarty->setCacheDir('foo/')` 和 `$smarty->getCacheDir()`。 目录结构方面,Smarty3 通常包括以下几个部分: 1....
Smarty是PHP世界中一个著名的模板引擎,它的出现是为了将网页设计者和程序员的工作分离,让设计人员专注于HTML和CSS,而...通过理解和熟练使用上述知识点,你可以充分利用Smarty的强大功能,提高你的Web开发效率。
- `$plugins_dir`: 设置插件文件的存放路径。 - `$debugging`: 启用或禁用调试功能。 - `$debug_tpl`: 设置要调试的模板文件名。 - `$debugging_ctrl`: 控制调试信息的显示。 以上内容涵盖了 Smarty 中文手册的...
- **$plugins_dir**:插件文件所在目录。 - **$debugging**:启用调试模式。 - **$debug_tpl**:指定调试模板。 - **$debugging_ctrl**:控制调试功能的行为。 通过以上介绍,可以看出Smarty不仅功能强大,而且非常...
这个设置可以让开发者利用Smarty提供的模板变量、模板继承、自定义函数等特性,同时享受Zend Framework的MVC架构优势。 在集成过程中,还需注意几个关键点: - Smarty实例化后,通过set方法可以传递额外的参数给...
在Smarty3中,配置文件目录(config_dir)、模板目录(template_dir)、编译目录(compile_dir)和缓存目录(cache_dir)已经可以在实例化Smarty对象时指定,无需再次指定。 最后,通过在浏览器中输入正确的URL(如...