Files
smarty/src/Resource/RecompiledPlugin.php

82 lines
1.4 KiB
PHP
Raw Normal View History

2022-12-21 16:33:26 +01:00
<?php
/**
* Smarty Resource Plugin
*
2022-12-21 16:33:26 +01:00
* @author Rodney Rehm
*/
namespace Smarty\Resource;
2022-12-23 14:03:05 +01:00
use Smarty\Smarty;
2022-12-22 21:23:22 +01:00
use Smarty\Template;
use Smarty\Template\Compiled;
2022-12-21 16:33:26 +01:00
/**
* Smarty Resource Plugin
* Base implementation for resource plugins that don't compile cache
*
2022-12-21 16:33:26 +01:00
*/
abstract class RecompiledPlugin extends BasePlugin {
/**
* Flag that it's an recompiled resource
*
* @var bool
*/
public $recompiled = true;
/**
* Flag if resource does allow compilation
2022-12-21 16:33:26 +01:00
*
* @return bool
2022-12-21 16:33:26 +01:00
*/
public function supportsCompiledTemplates(): bool {
return false;
}
2022-12-21 16:33:26 +01:00
/**
* compile template from source
*
2022-12-22 21:23:22 +01:00
* @param Template $_smarty_tpl do not change variable name, is used by compiled template
2022-12-21 16:33:26 +01:00
*
* @throws Exception
*/
2022-12-22 21:23:22 +01:00
public function process(Template $_smarty_tpl) {
$compiled = $_smarty_tpl->getCompiled();
2022-12-21 16:33:26 +01:00
$compiled->file_dependency = [];
$compiled->includes = [];
$compiled->nocache_hash = null;
$compiled->unifunc = null;
$level = ob_get_level();
ob_start();
// call compiler
try {
eval('?>' . $_smarty_tpl->getCompiler()->compileTemplate($_smarty_tpl));
2023-01-02 00:49:38 +01:00
} catch (\Exception $e) {
2022-12-21 16:33:26 +01:00
while (ob_get_level() > $level) {
ob_end_clean();
}
throw $e;
}
ob_get_clean();
$compiled->timestamp = time();
$compiled->exists = true;
}
/*
* Disable timestamp checks for recompiled resource.
*
* @return bool
*/
/**
* @return bool
*/
public function checkTimestamps() {
return false;
}
}