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

Laravel Favorite Laravel Package

overtrue/laravel-favorite

A lightweight Laravel package that adds favorite, like, and bookmark behavior to Eloquent models via simple traits. It supports polymorphic relationships, easy toggling, counting and querying favorites, and events for tracking user favorites. Ideal for blogs, marketplaces, and social apps.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

What changed (v6.0.0): Two items only — Laravel 13 support added, and the minimum PHP version raised to 8.3. This is a major version bump, which by convention signals a breaking change: existing consumers should assume support for Laravel ≤12 and PHP 8.1/8.2 has been dropped unless the maintainers state otherwise. The absence of any deprecation or feature notes suggests this release is primarily a compatibility-boundary refresh rather than a functional change.

Architecture fit: Superficially low risk — the package's own architecture is unchanged. The real architectural question is whether the package now sits at the leading edge of the Laravel ecosystem (Laravel 13 + PHP 8.3) while our applications sit behind it. If the package tracks Laravel majors one-to-one and drops older majors on each release, it becomes a hard constraint that forces our platform upgrade cadence to match the vendor's. That coupling, not the code change, is the architectural consideration.

Integration feasibility: Feasible but gated on two independent upgrade decisions:

  1. PHP 8.3 runtime — required to install v6 at all. If any application in scope runs 8.1 or 8.2, v6 is simply uninstallable there.
  2. Laravel 13 framework upgrade — if v6 supports only Laravel 13 and drops 12 and below, then the package upgrade and the framework upgrade become a single, non-separable workstream. That is a materially larger commitment than a routine dependency bump.

If the package supports a range (e.g. Laravel 12–13), the risk drops substantially and this becomes routine maintenance. This is the single most important fact to confirm and it is not stated in the release notes.

Technical risk:

  • High — version lock-step: if v6 is Laravel-13-only, any app not on 13 is pinned to v5 and its bug-fix line, with an eventual end-of-life security exposure. A two-major-version window between our platform and the package's is a supportability gap we would need to schedule out of existence.
  • Medium — hidden breaking changes: "Add Laravel 13 support" can conceal internal refactors (service provider registration, config publishing tags, facade changes, container bindings, removed/renamed methods). The changelog gives no coverage of these. Treat the notes as incomplete until the diff is reviewed.
  • Medium — PHP 8.3 requirements: 8.3 is well-established and past its initial stabilization period, so runtime risk is low; the risk is organizational (runtime standardization across environments, CI images, local dev parity).
  • Low — abandonment signal: shipping Laravel 13 support promptly is a positive health signal. The maintainers are active and tracking the ecosystem.

Key questions before we commit:

  1. Does v6 support Laravel 12 (and 11) as well as 13, or is it 13-only? What is the stated support matrix?
  2. Is PHP 8.3 a hard floor, or does the package still install on 8.2 with a relaxed constraint?
  3. Beyond the two headline items, what methods, config keys, service-provider bindings, or published assets were removed or renamed?
  4. Is v5 receiving security and critical-bug fixes, and for how long? Is there a published EOL statement?
  5. Does the Laravel 13 claim include test coverage against 13 in CI, or is it asserted only?
  6. What is the upgrade guide's guidance for consumers on PHP 8.2 who cannot move yet?

Integration Approach

Stack fit: The decisive variable is our current fleet position. Two scenarios:

  • Scenario A — we are already on Laravel 12 and PHP 8.3. The gap is one framework major. v6 is adoptable once Laravel 13 is validated, and the upgrade is a normal scheduled dependency bump.
  • Scenario B — we are on PHP 8.1/8.2 or Laravel 10/11. Adopting v6 means chaining a runtime upgrade and a framework upgrade behind a third-party package's release schedule. That is the wrong driver for a platform upgrade; we should upgrade on our own timeline and stay on v5 in the interim, with a dated plan to close the gap before v5 support lapses.

Migration path:

  1. Pin and hold. Pin to the current v5 minor with an explicit constraint (^5.x) so an automated dependency update cannot pull v6 mid-sprint. This is the immediate action and should happen regardless of the eventual decision.
  2. Inventory. Establish which services depend on this package, on what Laravel and PHP versions, and how each consumes it (facade calls, published config, queue jobs, migrations, Blade components).
  3. Read the diff, not the changelog. The release notes omit breaking-change detail; the upgrade guide and the actual diff between v5 head and v6.0.0 are the source of truth.
  4. Spike on a non-production branch. Install v6 on the service with the simplest integration, running the full test suite plus an application boot and a smoke test of every package touchpoint.
  5. Sequence (see below), then roll out per service, not fleet-wide.

Compatibility: Verify at three layers — (a) PHP 8.3 availability in every environment the service runs in (CI, staging, prod, local dev), (b) Laravel 13 compatibility of other dependencies, since the framework upgrade is the larger constraint, and (c) third-party packages that extend or wrap this package, which may lag its major release. Point (c) is a common source of schedule slippage and should be checked before committing to a date.

Sequencing (recommended order):

  1. Runtime first: standardize on PHP 8.3 across environments and confirm CI images.
  2. Framework second: upgrade Laravel to 13 (or confirm 12 support and stay).
  3. Package third: bump to v6 on one service, validate, then expand.
  4. Cleanup: remove any compatibility shims or config overrides that only existed for v5.

Do not invert steps 1 and 3. Attempting the package upgrade first produces an unresolvable dependency graph and burns engineering time for no signal.

If we choose to defer: that is a legitimate decision, provided we record an explicit trigger date — for example, the v5 end-of-support date, or six months out — and revisit. Deferral without a trigger becomes silent technical debt.

Operational Impact

Maintenance: Low ongoing surface. This is a compatibility release, not a feature release, so there is no new functionality to operate, monitor, or train on. The maintenance cost is concentrated entirely in the upgrade window. The recurring cost is the cadence: if the package tracks Laravel majors with a hard cutoff, we inherit an obligation to move framework versions on roughly the vendor's schedule. Budget for that as a standing line item rather than an annual surprise.

Support: Positive signal — the maintainers shipped Laravel 13 support promptly, which indicates an active project tracking the ecosystem. However, the terse release notes are a support concern: a two-line changelog for a major version is thin, and consumers deserve a breaking-changes list and upgrade guide. If v5 is being cut off without a documented EOL window, that is a governance risk worth raising with the maintainers (or, if the project is internal or vendored, worth fixing ourselves by forking or documenting).

Scaling: No scaling implications. This release does not touch runtime performance, query behavior, caching, or resource consumption. Do not expect — or claim — any performance change.

Failure modes:

  • Silent auto-update to v6 in an environment on PHP 8.2 or Laravel ≤12, causing install failure or, worse, a partial update that resolves but breaks at runtime. Mitigation: explicit version pin plus a dependency-update policy that requires human review of major bumps.
  • Framework upgrade drags other dependencies and the critical path moves from this package to something else entirely. Mitigation: dependency compatibility audit before committing to a date.
  • Hidden breaking changes — removed methods or renamed config keys that pass tests but break an untested code path (scheduled jobs, queue workers, console commands). Mitigation: smoke-test the non-HTTP surfaces, not just the test suite.
  • Environment drift — prod on 8.3 but a CI image or local dev container stranded on 8.2, producing "works on my machine" failures. Mitigation: treat runtime standardization as a prerequisite deliverable with its own verification.
  • Support cliff — v5 fixes stop and a security issue lands before we have migrated. Mitigation: obtain the v5 support window in writing and set a calendar trigger at least one quarter before it closes.

Ramp-up: Minimal knowledge transfer required — no new concepts, APIs, or operational procedures. The effort is engineering coordination, not learning: an estimated half-day to read the diff and upgrade guide, one to three days of spike and validation for the first service, and roughly half a day per subsequent service assuming shared platform work is done once. The genuine unknown — and the main variable in the estimate — is whether other Laravel dependencies block the framework upgrade; if they do, this becomes a multi-week platform initiative rather than a package bump.

Recommendation: Pin to v5 now to eliminate accidental-update risk. Then treat this as a platform-upgrade decision rather than a package decision: confirm the v5 support window and the v6 Laravel support matrix (questions 1 and 4 above), and if v6 is Laravel-13-only, fold it into the existing framework upgrade roadmap rather than running it as a standalone initiative. Re-assess once those two answers are in hand — they determine whether this is a half-day task or a quarter-long one.

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.
ignibyte/aic-framework
glavweb/data-schema-bundle
glavweb/datagrid-bundle
tacticmedia/scim-server
uni-method/frame
neika-ai/sdk
adachsoft/php-code-style
pharaonic/laravel-notification-dependencies
beautinow/translug
dev-brainiac/bot-cloaked
octoberrain/html
octoberrain/extension
octoberrain/exception
octoberrain/contracts
adachsoft/api-version-bundle
cgv/localized-resource
noith/settings
kda/laravel-package
kda/filament-dynamic-navigation
bypersoft/signbox