示例#1
0
 public function getOffice(array $params, array $default = array('_view' => 'Main'))
 {
     $list = $this->getClassList($params, $default);
     $frontOffice = new Miao_Office();
     $frontOffice->setFactory($this);
     /**
      * TODO: refactoring
      */
     $resource = new $list[lcfirst(Miao_Office::TYPE_RESOURCE)]($frontOffice);
     if ($list[lcfirst(Miao_Office::TYPE_VIEW)]) {
         $className = $list[lcfirst(Miao_Office::TYPE_VIEW)];
         $path = Miao_Path::getDefaultInstance();
         $templatesDir = $path->getModuleRoot($className) . '/templates';
         $templatesObj = new Miao_Office_TemplatesEngine_PhpNative($templatesDir);
         $view = new $list[lcfirst(Miao_Office::TYPE_VIEW)]($templatesObj);
         $frontOffice->setView($view);
     }
     if ($list[lcfirst(Miao_Office::TYPE_VIEWBLOCK)]) {
         $viewBlock = new $list[lcfirst(Miao_Office::TYPE_VIEWBLOCK)]();
         $frontOffice->setViewBlock($viewBlock);
     }
     if ($list[lcfirst(Miao_Office::TYPE_ACTION)]) {
         $action = new $list[lcfirst(Miao_Office::TYPE_ACTION)]();
         $frontOffice->setAction($action);
     }
     $frontOffice->setResource($resource);
     $header = new Miao_Office_Header();
     $frontOffice->setHeader($header);
     return $frontOffice;
 }