Doctrine 2.2 поставляется с нумератором страниц .Однако требует от вас написания DQL-запросов.
Если вы настаиваете на том, чтобы не писать никаких DQL, вы можете начать с просмотра класса Doctrine EntityRepository;в частности, метод findBy () .Он имеет необязательные параметры для предела и смещения, так что вы можете попробовать что-то вроде этого (используя ваш пример в качестве базовой линии):
$num_pages = x; // some calculation of what page you're currently on
$repo = $this->getDoctrine()
->getRepository('AcmeOfficeBundle:Project');
$list = $repo->findBy(
array('PROJ_private' => "0"), //search criteria, as usual
array(/* orderBy criteria if needed, else empty array */),
5, // limit
5 * ($num_pages - 1) // offset
);