PHPackages                             tsfcorp/lister - 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. tsfcorp/lister

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

tsfcorp/lister
==============

Listing library for Laravel

v2.0.3(1mo ago)34.7k↓23.4%MITPHPPHP &gt;=7.1CI failing

Since Nov 9Pushed 1mo ago3 watchersCompare

[ Source](https://github.com/thesoftwarefarm/lister)[ Packagist](https://packagist.org/packages/tsfcorp/lister)[ Docs](https://github.com/tsfcop/lister)[ RSS](/packages/tsfcorp-lister/feed)WikiDiscussions 2.x Synced 3d ago

READMEChangelog (10)Dependencies (6)Versions (31)Used By (0)

Listing library for Laravel
===========================

[](#listing-library-for-laravel)

Makes it easy to list a resource

Upgrade from 1.x to 2.x
=======================

[](#upgrade-from-1x-to-2x)

- `use TsfCorp\Lister\Facades\ListerFilter` has been removed. use `use TsfCorp\Lister\Filters\ListerFilter`

Installation
============

[](#installation)

Require this package in your `composer.json` and update composer. Run the following command:

```
composer require tsfcorp/lister
```

After updating composer, the service provider will automatically be registered and enabled, along with the facade, using Auto-Discovery

Next step is to run the artisan command to bring the config into your project

```
php artisan vendor:publish --provider="TsfCorp\Lister\ListerServiceProvider"
```

Update `config/lister.php`

Usage Instructions
==================

[](#usage-instructions)

`Lister` library can be added to your method signature, this way it will be resolved by DI container or it can be instatiated like this:

```
$lister = new Lister(request(), DB::connection());
```

Query settings must be specified in this format:

```
$query_settings = [
    'fields' => "users.*",

    'body' => "FROM users {filters}",

    'filters' => [
        "users.id IN (1,2,3)",
        "users.name LIKE '%{filter_name}%'",
    ],

    'sortables' => [
        'name' => 'asc',
    ],

    // optional, you can pass a model reference and the records returned
    // will be of that type

    'model' => User:class,
];

$listing = $lister->make($query_settings)->get();
```

- `{filters}` keyword must be specified in the `body` parameter, so it can be replaced with the conditions specified.
- each item from `filters` param, will be added to `WHERE` clause. If the condition has a parameter specified in curly braces, we'll search for that parameter in the request and replace the parameter with value found.

If using remembered filters and also for query string cleanup, this is needed at the top of the method used:

```
if($redirect_url = $lister->getRedirectUrl()) return redirect($redirect_url);
```

###  Health Score

52

—

FairBetter than 96% of packages

Maintenance90

Actively maintained with recent releases

Popularity25

Limited adoption so far

Community11

Small or concentrated contributor base

Maturity69

Established project with proven stability

 Bus Factor1

Top contributor holds 52.2% of commits — single point of failure

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 ~107 days

Recently: every ~24 days

Total

30

Last Release

46d ago

Major Versions

v0.0.18 → v1.0.02024-04-19

v1.0.5 → v2.0.02026-02-13

PHP version history (2 changes)v0.0.1PHP &gt;=7.0

v1.0.0PHP &gt;=7.1

### Community

Maintainers

![](https://www.gravatar.com/avatar/d64b5544beade37e7660b482f79936ee03ee094e3599f9883ea2fb5848d7fe8c?d=identicon)[tsfcorp](/maintainers/tsfcorp)

---

Top Contributors

[![marianperca](https://avatars.githubusercontent.com/u/673596?v=4)](https://github.com/marianperca "marianperca (36 commits)")[![ionutantohi](https://avatars.githubusercontent.com/u/4609521?v=4)](https://github.com/ionutantohi "ionutantohi (32 commits)")[![e10k](https://avatars.githubusercontent.com/u/1272713?v=4)](https://github.com/e10k "e10k (1 commits)")

---

Tags

phplaravellisting

### Embed Badge

![Health badge](/badges/tsfcorp-lister/health.svg)

```
[![Health](https://phpackages.com/badges/tsfcorp-lister/health.svg)](https://phpackages.com/packages/tsfcorp-lister)
```

###  Alternatives

[firefly-iii/data-importer

Firefly III Data Import Tool.

8035.8k](/packages/firefly-iii-data-importer)[markwalet/nova-modal-response

A Laravel Nova asset for Modal responses on an action.

17878.9k](/packages/markwalet-nova-modal-response)[verschuur/laravel-robotstxt

Set the robots.txt content dynamically based on the Laravel app environment.

43429.9k1](/packages/verschuur-laravel-robotstxt)[team-nifty-gmbh/tall-datatables

Server-side rendered datatables for Laravel and Livewire

1320.9k4](/packages/team-nifty-gmbh-tall-datatables)[tomshaw/electricgrid

A feature-rich Livewire package designed for projects that require dynamic, interactive data tables.

119.4k](/packages/tomshaw-electricgrid)[epessine/axis

Draw charts with a simple API on Laravel

267.3k](/packages/epessine-axis)

PHPackages © 2026

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