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

Posted ~~逍遥~~

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ZendFramework-2.4 源代码 - 关于MVC - View层 - 控制器返回值相关的知识,希望对你有一定的参考价值。

<?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层 - 控制器返回值的主要内容,如果未能解决你的问题,请参考以下文章

ZendFramework-2.4 源代码 - 关于MVC - Model层

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

ZendFramework-2.4 源代码 - 关于MVC - View层 - 视图渲染器视图插件管理器

ZendFramework-2.4 源代码 - 关于MVC - View层 - 在模板内渲染子模板

战地1控制台怎么关

网络安全实验室2.基础关