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\ComponentModel;
 9: 
10: 
11: /**
12:  * Provides functionality required by all components.
13:  */
14: interface IComponent
15: {
16:     /** Separator for component names in path concatenation. */
17:     const NAME_SEPARATOR = '-';
18: 
19:     /**
20:      * @return string
21:      */
22:     function getName();
23: 
24:     /**
25:      * Returns the container if any.
26:      * @return IContainer|NULL
27:      */
28:     function getParent();
29: 
30:     /**
31:      * Sets the parent of this component.
32:      * @param  IContainer
33:      * @param  string
34:      * @return void
35:      */
36:     function setParent(IContainer $parent = NULL, $name = NULL);
37: 
38: }
39: