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