跳到内容

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

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

注意

当前仅为文件资源调用默认处理程序。无法找到资源本身时不会触发该程序,此时将抛出 \Smarty\Exception。

<?php
use Smarty\Smarty;
$smarty = new Smarty();
$smarty->default_config_handler_func = 'my_default_config_handler_func';

/**
 * Default Config Handler
 *
 * called when Smarty's file: resource is unable to load a requested file
 * 
 * @param string   $type     resource type (e.g. "file", "string", "eval", "resource")
 * @param string   $name     resource name (e.g. "foo/bar.tpl")
 * @param string  &$content  config's content
 * @param integer &$modified config's modification time
 * @param Smarty   $smarty   Smarty instance
 * @return string|boolean   path to file or boolean true if $content and $modified 
 *                          have been filled, boolean false if no default config 
 *                          could be loaded
 */
function my_default_config_handler_func($type, $name, &$content, &$modified, Smarty $smarty) {
    if (false) {
        // return corrected filepath
        return "/tmp/some/foobar.tpl";
    } elseif (false) {
        // return a config directly
        $content = 'someVar = "the config source"';
        $modified = time();
        return true;
    } else {
        // tell smarty that we failed
        return false;
    }
}

?>