我正在学习使用Zend Framework 1,但我不了解这两个元素之间的区别。 我从理论上研究了Front-Controller获取Request-Object并使用路由/调度过程发送Response-Object,其主体包含浏览器的HTML代码...... 但做一个简单的" helloZend"应用程序我发现每次调用ActionController的动作时,都会自动呈现他的视图(即HTML代码)。
答案 0 :(得分:0)
从根本上说,Response对象表示HTTP响应。因此,它主要关注HTTP响应头(状态代码,内容类型等)和响应主体(在浏览器请求的HTML页面的情况下,例如,浏览器最终的HTML标记)渲染)。这就是Response对象具有操作标题和正文的方法的原因。
View对象主要关注构建最终将进入Response主体的内容。当然,View对象可以用于许多其他目的;例如,撰写来自模板的电子邮件消息。但是,在ZF1应用程序以标准方式处理HTTP请求的情况下,来自视图的内容最终由框架放入Response主体。具体而言,View对象通常在引导期间创建/配置,最终可供控制器中的开发人员使用:
$this->view
在控制器中,使用以下方法将数据添加到视图中时
$this->view->someKey = 'someValue';
这些数据在您的视图脚本中可用,该脚本将被渲染并添加到View对象中。
在请求处理管道的末尾,框架将视图的呈现传递到Response对象的主体,并且Response知道如何以符合HTTP的方式呈现自身,提供客户端(通常是浏览器)有效载荷的格式符合他的预期。