Я использую Smarty 3 на нескольких сайтах и проверяю, как работает веточка. Есть одна вещь, которую я не понимаю в Twig по сравнению со Smarty: как управляются экземпляры одного и того же шаблона.
В Smarty сначала вы создаете кэш шаблона с именем шаблона и идентификатором кеша для вашего конкретногостраница для этого шаблона
$template = $smarty->createTemplate('article.tpl', 'article|12');
Это создаст кэшированную страницу.
Чтобы отобразить результат в Smarty, вы сначала проверяете, существует ли страница в кэше, а затем предоставляете ей другой доступ к базе данных. для извлечения данных и назначения переменных.
if (!$template->isCached()) {
// access to the database
// assign variables
}
Затем страница отображается
$tpl->display();
Но в Twig я просто вижу
$loader = new \Twig\Loader\FilesystemLoader('/path/to/templates');
$twig = new \Twig\Environment($loader, ['cache' =>
'/path/to/compilation_cache']);
$template = $twig->load('index.html');
echo $template->render(['the' => 'variables', 'go' => 'here']);
Что эквивалентно"! $ template-> isCached ()", чтобы каждый раз избегать доступа к базе данных?