Sea*_*ing 6 php model-view-controller zend-framework zend-paginator
我正在开发一个Zend Framework(1.7)项目,其结构松散地基于快速入门应用程序的结构 - 前端控制器,动作控制器,视图和模型,它们使用Zend_Db_Table来访问数据库.我的一个主要模型依赖于一些昂贵的连接来提升其主要列表,所以我正在研究使用Zend_Paginator来减少从数据库带回的行数.我的问题是Zend_Paginator只带有4个适配器,其中没有一个看起来非常适合我.
将分页器传递到模型中感觉就像它也会违反MVC分离.问题是我错误地构建了我的模型,我是关于保持MVC分离的教条还是我错过了将所有活动部件粘在一起的干净,优雅的方法?
您可以在模型上提供一个接口,该接口接受$current_page
参数$per_page
并返回当前页面的数据集以及分页器对象。
这样,您的所有分页代码都包含在模型中,并且您可以自由使用数据库适配器,而不会觉得自己破坏了概念。
另外,控制器实际上不应该设置寻呼机,因为您将其与数据绑定在一起是正确的(并且模型用于数据,而不仅仅是数据库连接)。
class Model
{
//...
/**
* @return array Array in the form: array( 'paginator' => obj, 'resultset' => obj )
*/
public function getAll( $where = array(), $current_page = null, $per_page = null );
//...
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2167 次 |
最近记录: |