public function addComponent(__IComponent &$component) { //protect to infinite recursion if (!key_exists($component->getId(), $this->_components)) { $this->_components[$component->getId()] =& $component; $component->setContainer($this); } return $this; }