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