1: <?php
2:
3: namespace Alchemy\core;
4:
5:
6: /**
7: * Interface for SQL elements
8: */
9: interface IElement {
10:
11: /**
12: * Apply a tag to this element. The same tag cannot be applied
13: * with two different values.
14: *
15: * @param string $tag
16: * @param string $value optional value to give tag
17: */
18: public function addTag($tag, $value = true);
19:
20:
21: /**
22: * Get the locally-unique element id
23: *
24: * @return string
25: */
26: public function getID();
27:
28:
29: /**
30: * If the tag has been applied to this object, returns its
31: * value, else false
32: *
33: * @param string $tag tag name
34: * @return mixed value or false
35: */
36: public function getTag($tag);
37:
38:
39: /**
40: * List of all tags that apply to this element
41: *
42: * @return array
43: */
44: public function listTags();
45: }