1

我想根据给定文件是否存在来加载不同的模板。例如,默认情况下我会从基本文件夹加载模板,但如果存在特定文件夹,那么我会加载该模板。我正在描绘一些类似于自动加载功能提供的功能。树枝是否提供这种能力?

4

1 回答 1

1

取决于你是否想要

  • 从目录 A 或目录 B(如果存在)加载模板,但不能同时加载
  • 如果存在则加载目录 B,并使其优先于目录 A

例子

// Load both directories
$loader = new \Twig_Loader_Filesystem($baseTemplateDir);

if (is_dir($secondTemplateDir)) {
    $loader->prependPath($secondTemplateDir);
}


// Load one directory
$loader = new \Twig_Loader_Filesystem(
    is_dir($secondTemplateDir) ? $secondTemplateDir : $baseTemplateDir
);

或者

// Load both directories
try {
    $loader = new \Twig_Loader_Filesystem(array(
        $secondTemplateDir,
        $baseTemplateDir
    ));
} catch (\Twig_Error_Loader $e) {
    $loader = new \Twig_Loader_Filesystem($baseTemplateDir);
}

// Load one directory
try {
    $loader = new \Twig_Loader_Filesystem($secondTemplateDir);
} catch (\Twig_Error_Loader $e) {
    $loader = new \Twig_Loader_Filesystem($baseTemplateDir);
}
于 2013-11-04T22:46:11.117 回答