Skip to content

\$default_config_handler_func {#variable.default.config.handler.func}

当无法从资源中获取配置文件时,将调用此函数。

注意

默认处理程序目前仅在文件资源上调用。当资源本身无法找到时,不会触发该处理程序,而会抛出一个 SmartyException 异常。

<?php

$smarty = new Smarty();
$smarty->default_config_handler_func = 'my_default_config_handler_func';

/**
 * 默认配置处理程序
 *
 * 当 Smarty 的 file: 资源无法加载请求的文件时调用
 *
 * @param string   $type     资源类型(例如 "file"、"string"、"eval"、"resource")
 * @param string   $name     资源名称(例如 "foo/bar.tpl")
 * @param string  &$content  配置的内容
 * @param integer &$modified 配置的修改时间
 * @param Smarty   $smarty   Smarty 实例
 * @return string|boolean   文件路径,或者如果已填充 $content 和 $modified,则返回布尔值 true,
 *                          如果无法加载默认配置,则返回布尔值 false
 */
function my_default_config_handler_func($type, $name, &$content, &$modified, Smarty $smarty) {
    if (false) {
        // 返回修正后的文件路径
        return "/tmp/some/foobar.tpl";
    } elseif (false) {
        // 直接返回一个配置
        $content = 'someVar = "the config source"';
        $modified = time();
        return true;
    } else {
        // 告诉 Smarty 加载失败
        return false;
    }
}

?>