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