Exemplo n.º 1
0
 /**
  * @return WF_Application_View_Abstract
  */
 public static function GetView()
 {
     if (self::$_View) {
         return self::$_View;
     }
     if (WF_Application_Manager::$Config->app->view) {
         $view = WF_Application_Manager::Component(WF_Application_Manager::$Config->app->view);
     } else {
         $view = new WF_Application_View_Standard();
     }
     return self::$_View = $view;
 }
Exemplo n.º 2
0
 /**
  * 对请求进行分发
  * 
  * @param WF_Application_Request $request
  * @param WF_Application_Response $response
  */
 public static function dispath(WF_Application_Request $request, WF_Application_Response $response)
 {
     //实例化出应该调用的 contrller
     $dir = $request->getDirectory();
     $controller_key = $request->getController();
     $controller_name = ucfirst($controller_key) . 'Controller';
     $action = $request->getAction();
     $hierarchy = $request->getDirectory() === 'default' ? '' : $dir . '/';
     $controller_file = APP_PATH . '/app/' . $hierarchy . 'controller/' . $controller_key . '.php';
     require $controller_file;
     $controller = new $controller_name();
     $controller->init();
     //调用action
     $ifRender = $controller->{$action}();
     /**
      * 如果需要进行渲染则 启用View引擎, 使用何种View 引擎可以在配置中进行配置
      */
     if ($ifRender === null) {
         $view = WF_Application_View_Manager::GetView();
         if ($controller->view) {
             foreach ($controller->view as $key => $value) {
                 $view->{$key} = $value;
             }
         }
         //找到相应的tpl
         $tpl = $view->getTpl();
         if ($tpl) {
             $tplfile = APP_PATH . '/app/' . $hierarchy . 'views/' . $controller_key . '/' . $tpl . '.phtml';
         } else {
             $tplfile = APP_PATH . '/app/' . $hierarchy . 'views/' . $controller_key . '/' . $action . '.phtml';
         }
         $view->setTplFile($tplfile);
         //如果设置了layout 找到相应的layout 文件
         $layout = $view->getLayout();
         if ($layout) {
             $layoutFile = APP_PATH . '/app/' . $hierarchy . 'views/' . $layout . '.phtml';
         } else {
             $layoutFile = APP_PATH . '/app/' . $hierarchy . 'views/layout.phtml';
         }
         $view->setLayoutFile($layoutFile);
         $view->render($response);
     }
 }
Exemplo n.º 3
0
 /**
  * 加入title
  */
 public function title($title)
 {
     WF_Application_View_Manager::GetView()->setTitle($title);
 }