Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Loopback Api Bundle Laravel Package

theofidry/loopback-api-bundle

A Symfony bundle for building LoopBack-style REST APIs, helping you expose application resources through configurable endpoints. It streamlines model-driven routing and integration, making it easier to add JSON-friendly API endpoints to Symfony apps with less boilerplate.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Despite the "Laravel/PHP package" framing, this is a Symfony bundle, not a Laravel package. It registers via a Symfony Bundle class, wires services through the Symfony DI container, and hooks into Doctrine ORM's QueryBuilder plus DunglasApiBundle (the pre-1.0 name of what became API Platform). It implements LoopBack-style filter[where][field][gt]=... query-string parsing on top of Doctrine. There is no ServiceProvider, no facade, no Eloquent integration — so for a Laravel codebase the architectural fit is effectively zero. Even in Symfony, it targets a stack (Symfony 2.x/3.x + Doctrine ORM 2.4/2.5 + DunglasApiBundle 1.x) that was superseded in 2016 when DunglasApiBundle was renamed and re-architected into API Platform.

Integration feasibility. Low as a dependency. composer require theofidry/loopback-api-bundle will fail or force-degrade a modern project: the package pins PHP 5.5–7.x-era constraints, symfony/symfony ~2.7/3.0, and dunglas/api-bundle, all of which conflict with PHP 8.1+, Symfony 5.4/6/7, and api-platform/core 2.x/3.x. It is also deprecated and archived, so there is no path to a supported install. The genuinely reusable asset is the idea and roughly a few hundred lines of filter-parsing logic: translating a nested LoopBack filter document into a constrained query. That is small enough to re-implement or lift under the MIT license.

Technical risk. High on every axis:

  • Abandonment — archived, last release 2015-10-01, no security response, no maintainer.
  • Dependency rot — the upstream it extends (DunglasApiBundle) no longer exists under that name; its modern successor has incompatible internals.
  • Runtime risk — PHP 5/7-era idioms (dynamic properties, removed functions, relaxed type handling) will emit deprecations or fatal errors on PHP 8.x.
  • Security — an unmaintained query-parsing layer is exactly the kind of component where unbounded filter input becomes a query-complexity/DoS vector; there are no patches coming.
  • Bus factor 1 — 22 stars, 0 dependents means no community to lean on, no forks with fixes, no Stack Overflow corpus.

Key questions for the requestor.

  1. What is the actual requirement — LoopBack-compatible filter syntax for existing clients, or general query filtering?
  2. Is the target stack genuinely Laravel, or Symfony? (If Laravel, this package is categorically inapplicable.)
  3. If filter syntax compatibility is the driver, is it a hard external contract (mobile clients already shipping filter[where]), or can the API surface be redesigned?
  4. Are we on API Platform already? If so, its built-in SearchFilter, RangeFilter, OrderFilter, and QueryParameter filters likely cover 80–100% of the need with zero custom code.
  5. Is anyone still running a legacy Symfony 2 service that consumes this? If yes, this is a containment/migration problem, not an adoption problem.

Integration Approach

Stack fit. Treat this as reference material, not a dependency. For a Laravel target, the concept maps to Eloquent query scopes or a dedicated FilterParser service that validates and applies where/order/limit/offset/include clauses against a query builder. The package's source is a useful Rosetta Stone for the LoopBack filter grammar and its edge cases (nested and/or, operator aliases like gte/lte/like/inq, relation traversal), but none of its classes are drop-in usable.

Migration path. Three viable routes, in descending order of preference:

  1. Adopt the platform-native filter layer. On API Platform 2.6+/3.x, use built-in filters; on Laravel, use a maintained query-filter package or hand-rolled scopes. Zero legacy baggage.
  2. Extract and rewrite. Vendor the filter-parsing semantics (MIT permits this), re-implement against the current ORM/query builder, and add an allow-list of filterable fields and operators. Budget a few days, not weeks.
  3. Fork and modernize. Only justified if a hard external client contract demands byte-identical LoopBack filter behavior and someone owns the fork long-term. This is the highest-cost, highest-risk option and should require explicit sign-off.

Compatibility. Assume incompatible with any supported stack today: PHP ≥ 8.1, Symfony ≥ 5.4, Doctrine ORM ≥ 2.14, API Platform ≥ 2.6. Do not attempt --ignore-platform-reqs installs; the failures will be runtime, not just resolver-time, and will surface in production rather than CI.

Sequencing.

  1. Discovery (1–2 days): confirm the requirement is syntax compatibility, not the package itself; inventory any live consumers.
  2. Spike (2–3 days): prototype the filter grammar on the real target stack using native filters; measure coverage against real client queries.
  3. Gap fill (3–5 days): implement only the operators/relations the native layer misses, behind a strict allow-list.
  4. Contract tests: golden-file tests translating LoopBack filter strings into expected queries, run against both the legacy behavior (if observable) and the new implementation.
  5. Cutover & retire: version the API if syntax shifts; explicitly record the decision not to depend on the archived bundle.

Operational Impact

Maintenance. If adopted, you become the maintainer — of the package, of its dead upstream, and of the PHP-5-era transitive graph. There is no upstream to merge fixes from. Forking shifts a zero-maintenance "use a library" decision into an indefinite ownership commitment for a filter parser, which is a poor allocation of engineering time relative to writing ~300 lines yourself.

Support. No vendor, no maintainer, no issue triage, no security advisories. Internal engineers cannot escalate. Onboarding docs are a 2015 README tied to a framework name that no longer exists, so tribal knowledge will not exist either.

Scaling. The parsing itself is cheap; the risk is query shape. Unbounded LoopBack filters can express deep include graphs and arbitrary nested predicates, which translate into expensive joins, N+1 loads, and unbounded result sets. Any implementation must enforce: allow-listed filterable fields, allow-listed operators, max filter depth, mandatory pagination caps, and query-cost logging. Note that the original package predates most of these hardening patterns.

Failure modes.

  • Composer resolution failure or forced downgrade of Symfony/Doctrine/API Platform across the whole application.
  • Fatal errors on PHP 8 from removed language features and dynamic-property deprecations.
  • Silent behavior drift where Doctrine's query builder semantics changed post-2.5.
  • Unpatched CVEs in archived transitive dependencies.
  • Query-complexity DoS via crafted filter payloads.
  • Knowledge evaporation: no one left who understands the legacy API contract when clients finally migrate.

Ramp-up. The codebase is small, so reading it is quick; the cost is contextual — an engineer must also learn DunglasApiBundle 1.x conventions, Doctrine ORM 2.4-era event subscribers, and LoopBack's filter grammar to make sense of it. Realistically half a day to read, several days to safely port. That is acceptable for a one-time extraction exercise and unacceptable as ongoing operational surface.

Recommendation. Do not adopt as a dependency. Treat it as a specification artifact for LoopBack filter semantics, confirm whether the underlying need is served by API Platform's native filters or a small Laravel query-scope layer, and route any genuine syntax-compatibility requirement through a short, owned, allow-listed re-implementation under the same MIT terms.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle