<?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;
} }
05-11 21:55