ZendFramework-2.4 原始碼 - 關於MVC - View層 - 控制器傳回值

來源:互聯網
上載者:User

標籤:tcap   view   headers   sub   listen   create   environ   code   pen   

<?phpclass ReturnController extends AbstractActionController{    public function returnAction()    {            // 返回方式一 :會被dipatch處理器Zend\Mvc\View\Http\CreateViewModelListener::createViewModelFromArray(...)的攔截處理        return array(‘key1‘ => ‘key1value‘); //  == new ViewModel(array(‘key1‘ => ‘key1value‘));            // 返回方式二: 會被dipatch處理器Zend\Mvc\View\Http\CreateViewModelListener::createViewModelFromNull(...)的攔截處理        return null; // == new ViewModel();            // 返回方式三:會避過dipatch處理器Zend\Mvc\View\Http\InjectTemplateListener::injectTemplate(...)的攔截處理        // case.0        {            $viewModel = new ViewModel(array(                ‘key1‘ => ‘key1value‘,            ));            $viewModel->setTemplate(‘module1/ctrl1/action1‘); // 使用模板,可以不用設定,會自動識別            $viewModel->setTerminal(false); // false表示使用布局模板,預設是false            $viewModel->setCaptureTo(‘content‘); // 放入布局檔案的中的變數中            return $viewModel;        }        // case.1        {            // 模板            $data = array(                ‘key1‘ => ‘key1value‘,            );            $viewModelTop = new ViewModel($data);            $viewModelTop->setTemplate(‘module1/ctrl1/action1‘); // 使用模板,可以不用設定,會自動識別            $viewModelTop->setTerminal(false); // false表示使用布局模板,預設是false            $viewModelTop->setCaptureTo(‘content‘); // 放入布局檔案的中的變數中            $viewModelTop->setVariables(array(                ‘childrenStr‘=>‘‘            ));                            // 子模板            $viewModelSub = new ViewModel($data);            $viewModelSub->setTemplate(‘module1/ctrl1/action1sub‘);            $viewModelTop->addChild($viewModelSub,‘childrenStr‘,true);            return $viewModelTop;        }            // 返回方式四: 會避過後續所有的dipatch處理器的攔截處理        $reponse = new \Zend\Http\PhpEnvironment\Response();        { // headers                            $reponse->setStatusCode(200);                            $headers = new \Zend\Http\Headers();            $reponse->setHeaders($headers);                            // 添加http響應的cookie頭            $cookie = new \Zend\Http\Header\Cookie(array(                ‘key1‘=>‘key1_value‘,                ‘key2‘=>‘key2_value‘,            ));            $headers->addHeader($cookie);                            // 添加http響應的server頭            $server = new \Zend\Http\Header\Server(‘nginx/1.6.2‘);            $headers->addHeader($server);        }        { // Content            $reponse->setContent(‘<html><head></head><body><div>hello,i am zend framework 2.4 !</div></body></html>‘);        }                return $reponse;    }    }

 

ZendFramework-2.4 原始碼 - 關於MVC - View層 - 控制器傳回值

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.