SF1.4 から Web サービスを呼び出すときも同じことをしなければなりませんでしたが、私の場合、WS はページネーション パラメータを受け入れます。とにかく、結果で sfPager を使用したかったので、sfPager から継承するクラスを作成しました。
class sfWSPager extends sfPager {
public function getResults() {
return $this->results;
}
public function init() {
if (0 == $this->getPage() || 0 == $this->getMaxPerPage() || 0 == $this->getNbResults())
$this->setLastPage(0);
else {
$this->setLastPage(ceil($this->getNbResults() / $this->getMaxPerPage()));
}
}
public function setResults($results) {
$this->results = $results;
}
public function setNbResults($nb) {
parent::setNbResults($nb);
}
}
次に、私の行動で:
$this->pager = new sfWSPager(null);
$this->pager->setResults($dataResultsFromWS);
$this->pager->setNbResults($totalNbOfResults);
$this->pager->setPage($page);
$this->pager->init();
そのため、私は Symfony の sfPager 機能を使い続けています。