Skip to content

polysource/filter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

51 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

polysource/filter

Filter primitives for Symfony admin UIs — usable standalone in any Symfony app, also the foundation of polysource/easyadmin-filter-bridge and polysource/admin.

Part of the Polysource monorepo. MIT-licensed.

What it ships

  • FilterCollection + FilterCriterion — immutable value objects representing the active filter state, scoped by a stable id (typically the resource FQCN).
  • FilterService — session-backed persistence (load / save / clear per resource).
  • Enhanced form types — date presets (this-week / last-30-days / etc.), range pickers, multi-select, between, in.
  • Twig extension filter_tags — renders the active-filters chips bar.
  • Saved viewsSavedView VO + SavedViewService + Doctrine + in-memory storage adapters + Symfony voter for scope-aware visibility (private / team / public). See ADR-019.
  • SavedViewExtension Twig extension — renders the dropdown.

Audience

Standalone usage targets:

  • Sonata users wanting better filter UX
  • API Platform back-offices
  • Hand-rolled admin DIY
  • Any Symfony app that builds filter forms manually

For EasyAdmin v5 hosts, install polysource/easyadmin-filter-bridge instead — it wraps this package with auto-discovery.

Install

composer require polysource/filter

Register the bundle in config/bundles.php:

return [
    Polysource\Filter\PolysourceFilterBundle::class => ['all' => true],
];

Extend it

Need Implement
Persist saved views in Redis / Mongo / your HTTP service SavedViewStorageInterface (5 methods)
Resolve which "team" a user belongs to (for shared views) SavedViewTeamResolverInterface (1 method)
Format a chip your way ("3 statuses" instead of "paid, shipped, …") ChipFormatterInterface (1 method, ADR-016)
Take over the URL → criteria → form pipeline FilterMapperInterface / FilterFormatterInterface / FilterRendererInterface

See the full extensibility map.

Documentation

About

Polysource — standalone filter primitive: form/datasource separation, session persistence, mapper/formatter/renderer pipeline, multi-mode UI (integrated, subpanel) with chips bar.

Topics

Resources

Stars

Watchers

Forks

Packages

 
 
 

Contributors