/** * @wiki /MVC模式/控制器/控制器的组合模式 * 多个控制器可以组合起来,几项简单的工作可以组合成一项更复杂的工作。JeCat的控制器可以自由组合,控制器之间互不干扰、各自独立工作,又可以彼此配合,浑然一体。 */ public function add($object, $sName = null, $bTakeover = true) { if ($sName === null) { $sName = $object->name(); } if ($this->hasName($sName)) { throw new Exception("名称为:%s 的子控制器在控制器 %s 中已经存在,无法添加同名的子控制器", array($sName, $this->name())); } // 接管子类的视图 $this->takeOverView($object, $sName); // 子类继承父类的 数据 if ($bTakeover and $object->params() !== $this->params()) { $object->params()->addChild($this->params()); } parent::add($object, $sName, $bTakeover); }
public function remove($object) { $this->messageQueue()->removeChildHolder($object); parent::add($object); }