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

Doctrine Extensions Bundle Laravel Package

lendable/doctrine-extensions-bundle

Lendable's Doctrine Extensions Bundle integrates common Doctrine behavioral extensions into Symfony applications, providing configuration and service wiring for features like timestamps, slugs, trees, and soft deletes with minimal setup.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

  • Repository construction as an architecture decision. The package answers one narrow question: can a Doctrine repository receive constructor dependencies (custom query builders, read-model connections, clocks, serializers) and be instantiated by the DI container instead of Doctrine's no-arg EntityRepository convention? If our domain model requires thick repositories, this is a real constraint to design around — but it is a decision about architecture, and the package is only one of several ways to satisfy it.
  • Build vs. buy vs. upstream. The capability it once provided has been absorbed into DoctrineBundle (ServiceEntityRepository plus the container-aware repository factory, available since DoctrineBundle 1.8 / ORM 2.6). The decision this package informs is therefore "do we take a dependency at all, or use the framework's native mechanism?" — and the answer is native.
  • Framework strategy (Doctrine vs. Eloquent). Relevant only if we are running Doctrine inside a Symfony service. In a Laravel-first stack the package is inapplicable: Laravel ships Eloquent, and Doctrine integration there runs through laravel-doctrine, which does not use this bundle. Do not let a search result here create confusion in a roadmap conversation.
  • Legacy portfolio triage. If the package surfaces during a dependency audit, it is a signal that some service is pinned to Symfony 2/3-era wiring. That is a modernization backlog item, not a feature decision.
  • Use cases it would nominally serve: hexagonal/DDD services needing injectable repositories; repositories that must talk to a second datastore; test seams where repositories are swapped for doubles via the container. All of these are now served upstream or by a small custom RepositoryFactory.

When to Consider This Package

Adoption criteria — and this package fails nearly all of them:

  • Actively maintained. It is archived. Last release November 2017. Archived means no security patches, no PHP 8.x compatibility work, no Symfony 5/6/7 support. Disqualifying for anything with a multi-year lifecycle.
  • Ecosystem fit. Zero stars and zero dependents. There is no community, no issue history to mine, no downstream code proving it works in production. We would be the only operator of this code.
  • Version compatibility. Built for PHP 5.x/7.0-era constraints and Symfony 2/3. It will not install cleanly against a current stack without forking, at which point we own it.
  • Non-duplication of framework features. Its single feature is now native to DoctrineBundle. Paying a dependency cost — even a small one — for a capability we already have is value subtraction.
  • Reversibility. Easy to remove, which is the one point in its favor, but irrelevant given the above.

Look elsewhere — specifically:

  • Use ServiceEntityRepository with the container repository factory in DoctrineBundle. Same outcome, maintained by the upstream maintainers, zero added dependencies.
  • For anything the upstream factory does not cover, register a custom RepositoryFactory in doctrine.orm.repository_factory. Roughly a class and a config line; we own ~40 lines instead of an abandoned vendor.
  • In a Laravel service, use Eloquent repositories with constructor injection via the service container — Laravel resolves these natively and this problem does not exist.

How to Pitch It (Stakeholders)

Recommendation: do not adopt. Close the evaluation.

For executives: this is a one-line decision with no cost either way. The package is abandoned (archived since 2017, zero dependents, zero community) and its only feature is now built into the framework we already run. Adopting it would add an unmaintained dependency to production in exchange for nothing. We get the same capability from the framework at no cost and no risk.

For engineering: the need is legitimate — repositories that take constructor arguments and are resolved from the container — but the solution is ServiceEntityRepository plus DoctrineBundle's container repository factory. If a corner case remains, a custom RepositoryFactory is small, testable, and ours to maintain deliberately rather than inherited by accident. Anyone who finds this package while searching should be redirected to the upstream mechanism; consider adding a note to our internal Doctrine guidance so the question does not get re-litigated.

Risk if adopted anyway: abandoned code in a production dependency tree is an audit and security-review finding, a PHP-upgrade blocker, and a knowledge silo with no upstream to escalate to. The upside is zero, because the feature is free elsewhere.

Follow-up: confirm no existing service already depends on it (dependents count suggests none, but verify in our own manifests), and if one does, schedule migration to the native mechanism as routine tech-debt work rather than a project.

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.
elmogy/larafast
xeviant/laravel-paystack
gorilladash/laravel-website-sdk
martialbe/flysystem-oss
chondal/3312client
jeroen-g/flickr
opscale-co/nova-genbi
itsjustvita/laravel-retention
tequilarapido/trackit
gregsphotography/site-builder-filament
cabaoctavio/laravel-query-log
gregsphotography/site-builder-components
io-digital/clickatell
snowsoft/laravel-admin
oxygen/auth
relicsoftware/barakah-payment-gateway
tobya/work-with-composer
equipc/laravel-email-validator
equipc/laravel-email-database-log
adedsec/nova-translated-labels