1: <?php
2:
3: /**
4: * This file is part of the Nette Framework (http://nette.org)
5: *
6: * Copyright (c) 2004 David Grudl (http://davidgrudl.com)
7: *
8: * For the full copyright and license information, please view
9: * the file license.txt that was distributed with this source code.
10: * @package Nette\Caching
11: */
12:
13:
14:
15: /**
16: * Output caching helper.
17: *
18: * @author David Grudl
19: * @package Nette\Caching
20: */
21: class CachingHelper extends Object
22: {
23: /** @var array */
24: public $dependencies;
25:
26: /** @var Cache */
27: private $cache;
28:
29: /** @var string */
30: private $key;
31:
32:
33:
34: public function __construct(Cache $cache, $key)
35: {
36: $this->cache = $cache;
37: $this->key = $key;
38: ob_start();
39: }
40:
41:
42:
43: /**
44: * Stops and saves the cache.
45: * @param array dependencies
46: * @return void
47: */
48: public function end(array $dp = NULL)
49: {
50: if ($this->cache === NULL) {
51: throw new InvalidStateException('Output cache has already been saved.');
52: }
53: $this->cache->save($this->key, ob_get_flush(), (array) $dp + (array) $this->dependencies);
54: $this->cache = NULL;
55: }
56:
57: }
58: