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: * @package Nette
11: */
12:
13:
14:
15: /**
16: * Containers are objects that logically contain zero or more IComponent components.
17: *
18: * @author David Grudl
19: * @package Nette
20: */
21: interface IComponentContainer extends IComponent
22: {
23:
24: /**
25: * Adds the specified component to the IComponentContainer.
26: * @param IComponent
27: * @param string
28: * @return void
29: */
30: function addComponent(IComponent $component, $name);
31:
32: /**
33: * Removes a component from the IComponentContainer.
34: * @param IComponent
35: * @return void
36: */
37: function removeComponent(IComponent $component);
38:
39: /**
40: * Returns single component.
41: * @param string
42: * @return IComponent|NULL
43: */
44: function getComponent($name);
45:
46: /**
47: * Iterates over a components.
48: * @param bool recursive?
49: * @param string class types filter
50: * @return ArrayIterator
51: */
52: function getComponents($deep = FALSE, $filterType = NULL);
53:
54: }
55: