Esempio n. 1
0
 /**
  * @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);
 }
Esempio n. 2
0
 public function remove($object)
 {
     $this->messageQueue()->removeChildHolder($object);
     parent::add($object);
 }