Skip to content

Refactor Filter Processing Architecture and Introduce CQRS-Based Domain Model#5

Open
ericges wants to merge 11 commits intomainfrom
feat/refactor-abstraction
Open

Refactor Filter Processing Architecture and Introduce CQRS-Based Domain Model#5
ericges wants to merge 11 commits intomainfrom
feat/refactor-abstraction

Conversation

@ericges
Copy link
Contributor

@ericges ericges commented Jan 28, 2026

No description provided.

@ericges ericges self-assigned this Jan 28, 2026
@ericges ericges changed the title Refactor architecture Refactor Filter Processing Architecture and Introduce CQRS-Based Domain Model Jan 30, 2026
Copy link

Copilot AI left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Pull request overview

This pull request implements a major architectural refactoring of the Flare Bundle, introducing a CQRS-based domain model with significant changes to the filter processing architecture. The PR refactors the codebase from a mutable, model-centric approach to an immutable, specification-based architecture with a clear separation between domain models, specifications, contexts, and projectors.

Changes:

  • Introduces a new Engine/View/Context/Projector architecture for list rendering
  • Replaces FilterDefinition and related classes with immutable Specification objects
  • Refactors SortDescriptor to SortOrderSequence with improved validation
  • Adds translation files for filter and list type labels
  • Removes deprecated managers and builders (TranslationManager, TemplateManager, ListViewBuilder, etc.)

Reviewed changes

Copilot reviewed 213 out of 214 changed files in this pull request and generated no comments.

Show a summary per file
File Description
translations/flare_*.php New translation files for list types and filter elements
templates/backend/be_filter_info.html.twig Backend template for filter information display
templates/_paginator_styles.html.twig Reusable paginator styles macro
src/Engine/* New view engine architecture with contexts, projectors, and views
src/Specification/* Immutable specification objects replacing mutable models
src/Sort/* Refactored sorting with SortOrder and SortOrderSequence
src/Query/* Reorganized query building with factories
src/Registry/* New registries for projectors, filter collectors, and invokers
src/Model/* Updated models to implement new interfaces
src/FilterElement/* Updated to use new FilterInvocation and events
src/DependencyInjection/* New AsFilterInvoker attribute and compiler passes
contao/templates/* Updated templates for new architecture

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants