derafu/symfony-query-bundle
Symfony bundle that integrates derafu/query into Symfony applications. Provides easy service wiring and configuration to use query objects/patterns in your project. See derafu docs for setup, usage, and available options.
Container, EventDispatcher, or Doctrine integration).derafu/query. If Laravel already uses Eloquent, Query Builder, or API Platform, this may be redundant unless the abstraction offers unique SaaS-specific features (e.g., multi-tenancy, role-based filtering).Container vs. Laravel’s Service Container (different interfaces, autowiring).EventDispatcher vs. Laravel’s Events (different event classes, listeners).Controller trait vs. Laravel’s Controller class.derafu/query library (underlying this bundle) is PHP-agnostic, but its Symfony integration assumes:
Request stack for filtering/sorting.QueryBuilder integration).| Risk Area | Severity | Mitigation Strategy |
|---|---|---|
| Framework Lock-in | High | Abstract query logic into a shared library (e.g., extract derafu/query core to Composer). |
| ORM Mismatch | High | Use Eloquent Query Builder as a facade or write adapters for Doctrine ↔ Eloquent. |
| Event System | Medium | Replace Symfony events with Laravel’s Events or a mediator pattern. |
| Routing/Request | Medium | Map Symfony’s Request parameters to Laravel’s Request or use middleware. |
| Testing Overhead | High | Rewrite Symfony-specific tests for Laravel’s ecosystem. |
| Long-Term Maintenance | High | Not recommended unless building a hybrid Symfony/Laravel app. |
Why Symfony?
Current Laravel Query Complexity
spatie/laravel-query-builder, darkaonline/l5-swagger, fideloper/proxy) that achieve similar goals?Multi-Tenancy Needs
stancl/tenancy)?Team Familiarity
Performance Impact
derafu/query compare to Laravel’s Query Builder or Eloquent in terms of:
derafu/query (the underlying library) from the Symfony bundle.QueryBuilder, Request handling) for Laravel.spatie/laravel-query-builder, beberlei/attributes.laravel/pagination, fractal/zf-component-paginator.stancl/tenancy, archtechx/tenancy.derafu/query.Assessment Phase (2 weeks)
derafu/query vs. Eloquent/Query Builder.Proof of Concept (3 weeks)
derafu/query, strip Symfony dependencies, and test in Laravel.Pilot Integration (4 weeks)
Full Rollout (6+ weeks)
| Component | Laravel Equivalent | Compatibility Notes |
|---|---|---|
Symfony Container |
Laravel Service Container |
Different interfaces; may require adapters or manual binding. |
| Doctrine ORM | Eloquent | High risk; consider Query Builder or raw SQL for shared logic. |
Symfony Request |
Laravel Request |
Parameter mapping (e.g., ?filter[]=name → Request::query('filter')). |
| Event System | Laravel Events |
Replace EventDispatcher with Laravel’s event() helper or a custom dispatcher. |
| QueryBuilder | Eloquent/Query Builder | Rewrite derafu/query to use Laravel’s Builder methods. |
| Twig Templates | Blade | Not directly compatible; use API responses instead. |
Phase 1: Query Abstraction
derafu/query core logic.Phase 2: Tenant Isolation (if needed)
stancl/tenancy or custom middleware.Phase 3: Performance Optimization
Illuminate/Cache) for frequent queries.Phase 4: Documentation & Training
derafu/query core (but requires ongoing Laravel-specific upkeep).spatie/laravel-query-builder).derafu/query version; avoid Symfony-specific features.How can I help you explore Laravel packages today?