PHPackages                             xparse/recursive-pagination - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. xparse/recursive-pagination

Abandoned → [xparse/parser](/?search=xparse%2Fparser)ArchivedLibrary[Utility &amp; Helpers](/categories/utility)

xparse/recursive-pagination
===========================

Recursive Pagination

0.4.1(7y ago)126.8k3MITHTMLPHP ^7.1

Since Dec 10Pushed 2y ago2 watchersCompare

[ Source](https://github.com/xparse/recursive-pagination)[ Packagist](https://packagist.org/packages/xparse/recursive-pagination)[ Docs](https://github.com/xparse/RecursivePagination)[ RSS](/packages/xparse-recursive-pagination/feed)WikiDiscussions master Synced 2w ago

READMEChangelog (4)Dependencies (3)Versions (15)Used By (0)

Abandoned !!!
-------------

[](#abandoned-)

See [xparse/Parser](https://github.com/xparse/Parser)

Recursive Pagination
--------------------

[](#recursive-pagination)

Recursive Pagination allows you to parse website pages recursively. You need to pass link from where to start and set next page expression (xPath, css, etc).

Installation
------------

[](#installation)

You can install the package via Composer

```
$ composer require xparse/recursive-pagination
```

Basic Usage
-----------

[](#basic-usage)

Try to find all links to the repositories on github. Our query will be `xparse`. With recursive pagination we can traverse all pagination links and process each resulting page to fetch repositories links.

```
  use Xparse\Parser\Parser;
  use Xparse\RecursivePagination\RecursivePagination;

  # init Parser
  $parser = new Parser();

  # set expression to pagination links
  $paginator = new RecursivePagination($parser, "//*[@class='pagination']//a/@href");
  # set initial page url
  $paginator->addToQueue('https://github.com/search?q=xparse');

  $allLinks = [];
  while (($page = $paginator->getNextPage())) {
    # set expression to fetch repository links
    $adsList = $page->value("//*[@class='repo-list-name']//a/@href")->getItems();
    # merge and remove duplicates
    $allLinks = array_values(array_unique(array_merge($allLinks, $adsList)));
  }
  print_r($allLinks);
```

Testing
-------

[](#testing)

```
$ vendor/bin/phpunit
```

Credits
-------

[](#credits)

- [Ganchev Anatolii](https://github.com/ganchclub)
- [All Contributors](https://github.com/xparse/RecursivePagination/graphs/contributors)

License
-------

[](#license)

The MIT License (MIT). Please see [License File](LICENSE.md) for more information.

###  Health Score

31

—

LowBetter than 65% of packages

Maintenance20

Infrequent updates — may be unmaintained

Popularity24

Limited adoption so far

Community16

Small or concentrated contributor base

Maturity56

Maturing project, gaining track record

 Bus Factor2

2 contributors hold 50%+ of commits

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~148 days

Recently: every ~157 days

Total

12

Last Release

2637d ago

PHP version history (4 changes)0.0.1PHP &gt;=5.3.0

0.0.4PHP &gt;=5.6.0

0.2.0PHP ^7.0

0.4.0PHP ^7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/1ee14f8f97b3ead4c91823e410ea170293b55be64adf12a20d965f19008839a6?d=identicon)[funivan](/maintainers/funivan)

---

Top Contributors

[![funivan](https://avatars.githubusercontent.com/u/425208?v=4)](https://github.com/funivan "funivan (43 commits)")[![ganchclub](https://avatars.githubusercontent.com/u/7393570?v=4)](https://github.com/ganchclub "ganchclub (30 commits)")[![dependabot-preview[bot]](https://avatars.githubusercontent.com/in/2141?v=4)](https://github.com/dependabot-preview[bot] "dependabot-preview[bot] (10 commits)")[![dependabot-support](https://avatars.githubusercontent.com/u/112581971?v=4)](https://github.com/dependabot-support "dependabot-support (4 commits)")[![maxKuk](https://avatars.githubusercontent.com/u/25341044?v=4)](https://github.com/maxKuk "maxKuk (1 commits)")[![saintdron](https://avatars.githubusercontent.com/u/23000680?v=4)](https://github.com/saintdron "saintdron (1 commits)")

---

Tags

paginationxparse

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/xparse-recursive-pagination/health.svg)

```
[![Health](https://phpackages.com/badges/xparse-recursive-pagination/health.svg)](https://phpackages.com/packages/xparse-recursive-pagination)
```

###  Alternatives

[wenzhixin/bootstrap-table

An extended table to integration with some of the most widely used CSS frameworks. (Supports Bootstrap, Semantic UI, Bulma, Material Design, Foundation)

11.8k288.4k1](/packages/wenzhixin-bootstrap-table)[babdev/pagerfanta-bundle

Bundle integrating Pagerfanta with Symfony

21019.8M102](/packages/babdev-pagerfanta-bundle)[webcreate/jquery-ias

Infinite Ajax Scroll: A jQuery plugin that turns your server-side pagination into an infinite scrolling one using AJAX

899744.5k3](/packages/webcreate-jquery-ias)[jasongrimes/paginator

A lightweight PHP paginator, for generating pagination controls in the style of Stack Overflow and Flickr. The 'first' and 'last' page links are shown inline as page numbers, and excess page numbers are replaced by ellipses.

4071.3M22](/packages/jasongrimes-paginator)[aplus/pagination

Aplus Framework Pagination Library

2171.6M3](/packages/aplus-pagination)[kop/yii2-scroll-pager

Infinite AJAX scrolling for Yii2 ListView widget

178740.8k11](/packages/kop-yii2-scroll-pager)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
