ZendFramework-2.4 源代码 - 关于MVC - View层 - 控制器返回值
2024-08-29 15:45:54
<?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;
} }
最新文章
- Python 学习第十八天 js 正则及其它前端知识
- 【转】JVM运行原理及JVM中的Stack和Heap的实现过程
- fullPage 全屏滚动【上下滚动】效果
- bugzilla_firefox
- Why Deep Learning Works – Key Insights and Saddle Points
- 锋利的jQuery-4--trigger()和triggerHandler()
- sql order by+字段,指定按照哪个字段来排序
- 【Todo】秒杀系统材料
- Excel 函数记录
- 如何使用spring中的Log4jConfigListener--删除
- sql server2005主从数据库同步配置
- 基于Maven的spring_security入门
- Html 定位position
- git入门(msysgit安装)
- C/C++ Volatile关键词深度剖析(转)
- Mysql精华版(命令大全)
- [转] Python 字符编码判断
- @mentions for Users with ActionText; 使用Tribute.js库
- WDCP面板Web环境安装redis与phpredis扩展应用方法
- Linux命令:cd
热门文章
- Java多线程与并发——线程同步
- VMware安装CentOS7的详细过程
- 4 - Channelhandler和ChannelPipeline
- Linux下mysql定时备份及恢复
- ssm(Spring、Springmvc、Mybatis)实战之淘淘商城-第十一天(非原创)
- Vue.js(2.x)之Class 与 Style 绑定
- Android 使用GreenDao 添加字段,删除表,新增表操作
- 关于Mybatis的pagehelper使用遇到的坑
- 基于spark Mllib(ML)聚类实战
- C++指针的概念解读