1: <?php
2:
3: /**
4: * This file is part of the Nette Framework (https://nette.org)
5: * Copyright (c) 2004 David Grudl (https://davidgrudl.com)
6: */
7:
8: namespace Nette\Caching;
9:
10: use Nette;
11:
12:
13: /**
14: * Cache storage.
15: *
16: * @author David Grudl
17: */
18: interface IStorage
19: {
20:
21: /**
22: * Read from cache.
23: * @param string key
24: * @return mixed|NULL
25: */
26: function read($key);
27:
28: /**
29: * Prevents item reading and writing. Lock is released by write() or remove().
30: * @param string key
31: * @return void
32: */
33: function lock($key);
34:
35: /**
36: * Writes item into the cache.
37: * @param string key
38: * @param mixed data
39: * @param array dependencies
40: * @return void
41: */
42: function write($key, $data, array $dependencies);
43:
44: /**
45: * Removes item from the cache.
46: * @param string key
47: * @return void
48: */
49: function remove($key);
50:
51: /**
52: * Removes items from the cache by conditions.
53: * @param array conditions
54: * @return void
55: */
56: function clean(array $conditions);
57:
58: }
59: