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 に答える