码迷,mamicode.com
首页 > Web开发 > 详细

ZendFramework-2.4 源代码 - 关于MVC - View层 - 控制器返回值

时间:2017-02-10 20:18:15      阅读:209      评论:0      收藏:0      [点我收藏+]

标签: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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!