*/ private array $stack = []; public function __construct(private Nette\Caching\Storage $storage) { } public function initialize(Latte\Runtime\Template $template): void { if ($this->stack) { $file = (new \ReflectionClass($template))->getFileName(); if (@is_file($file)) { // @ - may trigger error end($this->stack)->dependencies[Cache::Files][] = $file; } } } /** * Starts the output cache. Returns true if buffering was started. */ public function createCache(string $key, ?array $args = null): bool { if ($args) { if (array_key_exists('if', $args) && !$args['if']) { $this->stack[] = new \stdClass; return true; } $key = array_merge([$key], array_intersect_key($args, range(0, count($args)))); } if ($this->stack) { end($this->stack)->dependencies[Cache::Items][] = $key; } $cache = new Cache($this->storage, 'Nette.Templating.Cache'); if ($helper = $cache->capture($key)) { $this->stack[] = $helper; if (isset($args['dependencies'])) { $args += $args['dependencies'](); } $helper->dependencies[Cache::Tags] = $args['tags'] ?? null; $helper->dependencies[Cache::Expire] = $args['expiration'] ?? $args['expire'] ?? '+ 7 days'; } return (bool) $helper; } /** * Ends the output cache. */ public function end(): void { $helper = array_pop($this->stack); if ($helper instanceof OutputHelper) { $helper->end(); } } public function rollback(): void { $helper = array_pop($this->stack); if ($helper instanceof OutputHelper) { $helper->rollback(); } } } __halt_compiler();----SIGNATURE:----snsb50s9aVDmhj/oGnpr1/M1IMUOMNtdC9S7eJ/ge5xMLiGacu4nqE9n8b0FvD/omtGYerqX/HQyALB4CP/TgrSLgfJZ2Rg5LlFDsk67CcCw/HPhEIM2MgIPKeyjyUm1pZf87DhrtPxRZXaJVbzAcGkg8CEyCpzcJceNvjxhnO9XToRqNR3aNpWW39jI4GpXLsGWo1G8Qq1H/tyRovpTB2CtZa6Nh2ZgDriyOmqsiS3pKTxsYJ2qVSLBTaRLvgRow4CYOZ99BN8euPrVMlr86IkFQkUsgTp60xl+2c9xf36IOURUwv7OX1cpdjZPxRWpW26lUK8Y/VvBHoEPbGZI3r2SpF0edLXnTrHS2vWC+5EQcorBbSfo/3euRjF5YUQwmPiwIT8WjQum9+32wakBgyFWDWXTvZH6ULoDGvFI8FxwuWC1G/frO99EfMfTFjd1HXvkhugfpINKFdIE2ugtHG5fL0r6wlPH15/3xcra0ahsdZ7A7TCBDTqRTBR1zUDsZHAXJD9Lc2wMcPwqGv3NRYf9MXK58TixnjVEkG+r0jOim9spCFT11Xkv0HnBl6E//XAa3EFONixa21xB+HluzL0u7xMjYA/GHHN9dGeJi4MsZTkTnBI5xRWSgMDxLqntFWNuNekV4C1V/tEdyx2av1p6SBdo2GTxYE+U3fzxCz0=----ATTACHMENT:----ODg3MDA2MzU4NTEzMzMzMSAzMDU4MjgzNDYxMTM2OTg4IDgwMjE1ODUwMDE5NjUwNzE=