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 Behaviors Laravel Package

ufo-tech/doctrine-behaviors

Add reusable Doctrine entity behaviors to your Laravel app: timestamps, slugs, soft deletes, tree structures, and more. Drop-in traits keep entities consistent and cut boilerplate, so you write less mapping code and ship features faster. Great for teams standardizing entity logic.

View on GitHub
Deep Wiki
Context7

Product Decisions This Supports

Framework-upgrade unblocking (primary). The library exists because the official knplabs/doctrine-behaviors package stops working past Symfony 6.3. That makes this fork a release-gating dependency, not a feature choice. It directly informs the roadmap decision: "Can we ship Symfony 6.4/7.x this quarter, or are we held hostage by a transitive dependency?" Answering that question is worth more than the package's ~26 opportunity score suggests.

Build vs. buy vs. fork. For each behavior your product actually uses — translatable, timestampable, blameable, sluggable, soft-deletable, tree/nested-set — you now have four options: adopt this fork, migrate to a maintained alternative, hand-roll as Doctrine event subscribers/listeners, or drop the behavior from scope. This package is the zero-effort/"buy" option with a known maintenance cost.

Scope reduction via feature inventory. Before committing, audit which behaviors are truly used in production. Most applications lean on two or three. If it's timestampable + sluggable, hand-rolling is roughly a day of work and permanently removes the dependency — a cheap de-risking decision.

Vendor/fork ownership as a trackable commitment. Adopting a fork-of-a-fork means someone on your team owns merging upstream changes, tracking PHP/Doctrine major versions, and responding to CVEs. That is a standing operational line item, and it should be assigned and budgeted, not assumed.

Migration-path sizing. This tells you whether "replace the behaviors library" is a 1-sprint or 1-quarter initiative — which in turn determines whether you accept the fork now or delay the Symfony upgrade until the replacement lands.

Caveat on scope: this is a Symfony + Doctrine ORM package, not Laravel/Eloquent. It is relevant only if the product's PHP surface is Symfony-based. Do not let it leak into a Laravel roadmap review.

When to Consider This Package

Adopt when:

  • You have an existing Symfony application already using knplabs/doctrine-behaviors and are blocked from upgrading to Symfony 6.4/7.x.
  • The alternative is staying on an unsupported Symfony version — the security and hiring costs of that dwarf the risk of a small fork.
  • Your usage is limited to stable, well-understood behaviors (timestamps, slugs, soft-delete) rather than deep, edge-case-heavy translatable/tree logic.
  • You can pin an exact commit or tag, vendor the code, and add it to your dependency-review process.
  • You have an owner who will watch upstream for a real fix or for Doctrine ORM/PHP major bumps.

Look elsewhere — or build — when:

  • This is a greenfield project. There is no reason to start on a fork-of-a-fork with 8 stars and 0 dependents.
  • You need active maintenance, responsive issue triage, security advisories, or a support contract. This provides none of those; 0 dependents means near-zero external validation of the patch.
  • Your behavior usage is narrow enough to implement as a handful of Doctrine event listeners in your own codebase — that inverts the maintenance risk entirely.
  • A maintained alternative covers your needs (e.g. gedmo/doctrine-extensions for translatable/tree/sluggable/soft-delete, or a maintained successor to knplabs).
  • Your stack is Laravel/Eloquent — this package is architecturally irrelevant.
  • Your organization has a policy barring low-adoption, low-activity forks from production dependencies. That policy is reasonable; respect it rather than lobbying for an exception you'll have to re-litigate annually.

Decision rule of thumb: acceptable as a temporary bridge with an exit date, unacceptable as a strategic dependency.

How to Pitch It (Stakeholders)

To executives — one paragraph: We have a small third-party library blocking our Symfony upgrade. A community fork exists that resolves it with a one-line dependency swap; it's MIT-licensed and the change surface is narrow. The trade-off is that the fork is unmaintained and barely used, so it carries ongoing ownership cost for our team. Recommendation: adopt it as a time-boxed bridge to unblock the upgrade, assign an owner, and fund a follow-up ticket to remove it. This trades a small, bounded engineering cost now for avoiding another quarter on an unsupported framework.

To engineering — the ask: swap to the fork via Composer, pin the version, vendor it if the build allows, add a regression test per behavior in use, and open a tech-debt ticket with a target removal date. Treat it as a bridge, never as the destination. If we can hand-roll our two or three used behaviors inside one sprint, do that instead and skip the dependency entirely.

Frame it as: risk containment, not adoption. We are not standardizing on this package; we are buying time to remove it.

What not to claim: that this is a safe long-term dependency, that it has community backing, or that anyone is maintaining it for us. It is 8 stars, 0 dependents, and a fork of a fork — say that plainly and let the decision be made with accurate information.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource