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

cybercog/laravel-paket

Laravel Paket is a package-management toolkit for Laravel that helps you create, organize, and maintain reusable packages or modules inside your application. It keeps code modular and maintainable, making it easier to extend projects and share components across Laravel apps.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Install the package with Composer, pinning the new minor line: composer require vendor/package:^1.9. Release 1.9.0 adds PHP 8 support, so this is the first version to use if your app runs on PHP 8.
  • Check the package’s composer.json constraints (Laravel version, PHP version, and any PSR/http dependencies) before upgrading. If you are already on 1.x, a composer update vendor/package is usually enough.
  • Publish any package config or migrations if you have not already done so: php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider". Review the published config for environment-specific values.
  • First use case: resolve the package’s primary service from the container (or call its facade) in a Tinker session or a small feature test to confirm the package boots correctly under PHP 8. If the package exposes commands, run php artisan list and execute the safest read-only command to verify registration.

Implementation Patterns

  • Service provider and container binding: Laravel auto-discovers the service provider. Prefer constructor injection of the package’s contracts/classes in your own services and controllers so you can swap implementations in tests. Use the facade only in views, routes, and quick scripts.
  • Configuration-driven usage: Publish the config file and keep environment-specific values in .env. Use config('package.key') rather than reading env vars directly. Clear cached config after deployment with php artisan config:clear or rebuild with php artisan config:cache.
  • Testing integration: Use the package’s testing helpers if provided, or bind a fake/mock into the container in setUp(). Because 1.9.0 targets PHP 8, run your test suite on PHP 8 in CI as well as your local environment to catch signature and deprecation issues early.
  • Queues and scheduled tasks: If the package dispatches jobs or exposes scheduled commands, confirm your queue workers and scheduler are running on PHP 8 before relying on them in production. Use php artisan queue:restart after deploying the updated package.
  • Upgrade workflow: Bump the package in a feature branch, run composer update vendor/package --with-dependencies, then run your app’s test suite. Focus first on integration points: service provider boot, facade aliases, config merging, and any package events your app listens for.

Gotchas and Tips

  • PHP 8 is the headline change: 1.9.0 is primarily a compatibility release. If you are on PHP 8, do not use earlier 1.x versions. If you are still on PHP 7.x, 1.9.0 should remain compatible, but verify the package’s composer.json before assuming.
  • Transitive dependencies: PHP 8 support in this package does not guarantee all its dependencies support PHP 8. Run composer why-not php 8.0 (or 8.1) to find blockers before upgrading a production app.
  • Config cache quirks: After upgrading, stale cached config or package discovery can hide new bindings. Run php artisan config:clear and php artisan package:discover when debugging “class not found” or missing facade errors.
  • PHP 8 deprecations: Watch for deprecation notices from the package or its dependencies (e.g., passing null to non-nullable internal parameters). These are often non-fatal but should be fixed before moving to PHP 8.1+.
  • Extension points: Use the package’s documented extension points (custom drivers, macros, container bindings, or event listeners) rather than modifying vendor code. If the package publishes its config, keep customizations there so future 1.x updates remain low-friction.
  • Debugging: Enable Laravel’s debug mode locally and check storage/logs/laravel.log for package-related exceptions. For container or facade resolution issues, use app()->bound('package.key') and class_exists() checks in a Tinker session.
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.
socialdept/tenant-domains
tautvydasr/blade-class-names
socialdept/color-scales
maherelgamil/controller
coleus/widgets
coleus/table
coleus/users
coleus/music
coleus/health
coleus/calendar
coleus/notes
coleus/support
coleus/settings
coleus/apps
seampact/laravel
emmyconceptng/laravel-ng-postcode
jjsquady/round-robin
skyraptor/chatter
edlugz/sasapay
abbasudo/artisan-route