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 Soft Deletes Unix Laravel Package

al-one/laravel-soft-deletes-unix

Adds Unix-timestamp based soft deletes to Laravel Eloquent models, swapping the default nullable deleted_at datetime column for an integer timestamp to save storage and speed up queries while keeping familiar restore and force-delete behavior.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Confirm the advisory and patched range. Look up GHSA-4mg9-vhxq-vm7j and the package's SECURITY.md/CHANGELOG to verify which versions are affected and whether 1.6.20-beta1 is the first patched release or whether a stable patch is also available. Prefer the stable patch if one exists.
  • Install the patched version. If you must use the beta, require it explicitly rather than lowering global stability:
    composer require <vendor>/<package>:"^1.6.20@beta" --with-all-dependencies
    
    Commit the resulting composer.lock and run composer audit to confirm the advisory is cleared.
  • Publish and review config first. If the package exposes config, publish it and diff it against your existing config:
    php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" --tag=config
    
  • First use case: verify the fix in your app context. Identify the code path covered by the advisory (middleware, request handling, deserialization, auth flow, etc.), exercise it locally, and add a regression test before rolling out.
  • Where to look first: the GitHub advisory, CHANGELOG.md, SECURITY.md, the package service provider, published config, and any existing tests that cover the affected feature.

Implementation Patterns

  • Pin and audit in CI. Keep composer.lock committed and add a CI step:
    composer audit --locked
    
    Enable Dependabot/Renovate security updates so future GHSAs are surfaced automatically.
  • Isolate package usage behind your own adapter. Wrap the package's facade/client in a small application service or interface. This makes security upgrades, beta testing, and eventual replacement far less invasive.
  • Use feature tests around the fixed surface. If the advisory relates to request handling, add HTTP feature tests; if it relates to console/queue behavior, add command or job tests. Use the package's fake/mock utilities where available.
  • Stage the upgrade. Roll 1.6.20-beta1 through local → CI → staging before production. Treat the beta as a candidate patch, not a guaranteed stable release.
  • Upgrade workflow:
    composer update <vendor>/<package> --with-all-dependencies
    php artisan config:clear
    php artisan test
    composer audit
    
  • Config and environment layering. Keep package config overridable via config/ and environment variables; avoid editing vendor files so patches apply cleanly.
  • Laravel integration points. Register the service provider via package discovery, bind any contracts in a service provider, and use events/listeners or macros rather than monkey-patching package internals.

Gotchas and Tips

  • Beta stability is the main trap. Composer defaults to stable; 1.6.20-beta1 will not install unless you use an explicit @beta constraint or set minimum-stability. Avoid setting "minimum-stability": "beta" globally—scope it to the single package.
  • A GHSA fix does not always mean every install was vulnerable. Read the advisory's affected configurations and versions. Confirm whether your usage actually hits the vulnerable path, but still upgrade.
  • Check transitive dependencies. The advisory may involve a dependency; run composer why <vendor>/<package> and composer audit after updating to ensure the whole tree is clean.
  • Clear caches after upgrading. Laravel can serve stale package discovery/config:
    php artisan config:clear
    php artisan cache:clear
    composer dump-autoload
    
  • Debugging upgrade issues: use php artisan about, composer outdated, composer why-not <vendor>/<package> <version>, and the application log. Check whether package discovery ran with php artisan package:discover.
  • Watch for unannounced behavior changes in beta patches. Even security patches can alter validation, normalization, or error handling. Diff the package source between your previous tag and 1.6.20-beta1.
  • Extension points to prefer: published config, container bindings for package contracts, package events, and documented macros. Avoid subclassing vendor internals that may change in the next patch.
  • Add a regression test tied to the advisory. This prevents a future dependency rollback or merge conflict from silently reintroducing the vulnerable behavior.
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.
gmostafa/php-graphql-client
xeviant/paystack
snowsoft/faker
meditationsteps/blogetc
animalyoung/laravel-influxdb
onix-solutions/sms-telera
lonely-lights/prosetta
oxygen/data
oxygen/core
jengo/base
xiloryx/log-collector
a21ns1g4ts/filament-stripe
la-php/laravel-admin
artisan-build/community-prompts
vleroy/smart
ayles-software/laravel-australian-public-holidays
cboxdk/laravel-id-spatie
cboxdk/laravel-id-billing
cboxdk/laravel-id-billing-bridge
simple-as-fuck/php-performance-log