标签:tcap view headers sub listen create environ code pen
<?php class 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层 - 控制器返回值
标签:tcap view headers sub listen create environ code pen
原文地址:http://www.cnblogs.com/xiaoyaogege/p/6387581.html