1: <?php
2:
3: /**
4: * This file is part of the Nette Framework (https://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: */
11:
12: namespace Nette;
13:
14: use Nette;
15:
16:
17:
18: /**
19: * Provides functionality required by all components.
20: *
21: * @author David Grudl
22: */
23: interface IComponent
24: {
25: /** Separator for component names in path concatenation. */
26: const NAME_SEPARATOR = '-';
27:
28: /**
29: * @return string
30: */
31: function getName();
32:
33: /**
34: * Returns the container if any.
35: * @return IComponentContainer|NULL
36: */
37: function getParent();
38:
39: /**
40: * Sets the parent of this component.
41: * @param IComponentContainer
42: * @param string
43: * @return void
44: */
45: function setParent(IComponentContainer $parent = NULL, $name = NULL);
46:
47: }
48: