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

dive-be/laravel-snowflake

dive-be/laravel-snowflake brings Snowflake ID generation to Laravel Eloquent models, creating unique, time-sortable 64-bit identifiers without auto-increment. It supports model keys and distributed systems, helping apps scale across workers and databases.

View on GitHub
Deep Wiki
Context7

Getting Started

1.3.0 is a platform cut, not a feature drop: support for PHP 8.3 and Laravel 11 was added, and support for PHP 8.2 and Laravel 10 was removed. Before anything else, confirm your runtime meets the new floor:

php -v                              # must be >= 8.3
composer show laravel/framework     # must be ^11.0

Then install and verify:

composer require vendor/package:^1.3
php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider"   # if config/migrations ship
php artisan about

Where to look first, in order:

  1. The CHANGELOG entry for 1.3.0 — confirm there are no migration or config-key renames hiding behind the "support" wording.
  2. The service provider's register()/boot() — that is the authoritative list of container bindings, config keys, and publishable assets. Docs drift; the provider doesn't.
  3. The published config file's defaults — use these as the baseline for your .env overrides.

First use case: resolve the package's primary contract out of the container in php artisan tinker and exercise one read-only operation end to end before wiring it into a controller or job. That isolates "environment is wrong" from "my integration is wrong."

Implementation Patterns

  • Constructor injection over app() lookups. Bind through the container so the package can be swapped for a fake or mock in feature tests; static/facade calls make that impossible.
  • Per-app version pinning. If you run a fleet split across Laravel 10 and 11, pin ^1.2 in the Laravel 10 apps' composer.json and ^1.3 in the Laravel 11 apps. Do not rely on a shared lockfile across services.
  • CI matrix. Drop PHP 8.2 / Laravel 10 jobs and add 8.3 / 11. Run one job with composer update --prefer-lowest to catch constraint mistakes the default resolution hides.
  • Config cache correctness. After upgrading, run php artisan config:cache and boot the app. If the package reads env() outside a config file, this surfaces it as a null default rather than a silent prod surprise.
  • Queue and schedule integration. If the package dispatches jobs, remember php artisan queue:restart after deploy — workers hold old code in memory and will fail on changed serialized payloads.
  • Deploy ordering. Bump the PHP version in Docker/Heroku/Fly buildpacks before running composer update. Otherwise the build fails at dependency resolution with a confusing platform error rather than an obvious runtime one.

Gotchas and Tips

  • This is a breaking change shipped in a minor version. Removing Laravel 10 and PHP 8.2 under 1.3.0 breaks the semver contract for anyone on ^1.0. Audit your constraints: ^1.0 and ^1.3 mean materially different things here. Consider pinning ~1.3.0 if you don't want the next platform cut to arrive unannounced.
  • Diagnosing a stuck upgrade. When composer update refuses to move you to 1.3.0, run composer why-not vendor/package 1.3.0. On a Laravel 10 app the answer is usually laravel/framework itself, not a transitive conflict.
  • Laravel 11 skeleton mismatch. Laravel 11 removed app/Http/Kernel.php and moved middleware registration into bootstrap/app.php. Any install instructions telling you to register a middleware or service provider in the Kernel are stale — cross-check against 1.3.0's docs, and treat the README as suspect if the last commit predates the release.
  • Config files are opt-in in Laravel 11. If the package's defaults used to arrive via a published config file in the skeleton, they now don't. Verify the config actually exists before assuming a default is applied.
  • PHP 8.3 deprecations. Dynamic property creation on package internals now emits E_DEPRECATED; set a strict error_reporting in your test suite so these fail loudly in CI rather than scrolling past in logs.
  • Don't subclass internals. With the version floor raised, the package can freely adopt typed class constants and readonly — both of which are fatal for subclasses that override them. Only the container bindings and published config are supported extension surfaces; use $this->app->extend() in your own provider if you need to decorate a binding.
  • Extension point for debugging. Publish and inspect the config, then enable the package's own log channel rather than adding dd() calls into vendor code — you'll lose those edits on the next composer install.
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