Jie*_*eng 2 php model-view-controller doctrine zend-framework
我想知道View应该传递对象还是应该只接收数组.我正在使用ORM框架.因此,在项目视图页面中,我可以将视图传递给项目对象,并让它呈现项目的todoLists和todos.
所以目前在我看来我的代码如下:
foreach ($this->project->getTodoLists() as $todoList) {
// render lists
foreach ($todoList->getTodos() as $todo) {
// render todos
}
}
Run Code Online (Sandbox Code Playgroud)
这个可以吗?我认为使用doctrine的延迟加载,它会在get*()
调用时运行SQL .这有关系吗?
或者我应该在我的控制器中将所有必需的信息解析为纯数组?
我使用PHP,Zend Framework 1.11,Doctrine 2 ORM.但在我看来,我使用的并不重要
使用非延迟数据类型(即数组)进行视图渲染的一个专业人员是没有任何失败.例如,如果读取对象的值并触发要调用的函数,该函数最终失败(db,内存不足等问题),则视图呈现可能会损坏(HTML文档中的IE错误消息).将数组传递给视图时,访问哪些数据或以何种顺序进行预渲染无关紧要.
虽然这个问题可以通过输出缓冲来解决,但是某些事情(例如致命错误)无法被捕获并且会泄漏到页面上.
当然,在像PHP这样的语言中,懒惰可以帮助减少内存峰值(因为它根据需要进行分配然后再渲染)和CPU使用率(如果你最终没有评估所有对象).
最后,它归结为您希望您的观点有多复杂.简单数据结构 - >简单视图,反之亦然.
归档时间: |
|
查看次数: |
575 次 |
最近记录: |