Weave Code
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 Package Toolkit Laravel Package

nyoncode/laravel-package-toolkit

Toolkit for building Laravel packages with less boilerplate: configure routes, migrations, translations, views/components, middleware, assets and commands. Includes install/about commands, publishing options, lifecycle hooks, and package-specific exception handling.

View on GitHub
Deep Wiki
Context7
2.2.0

Added

  • Event registrationhasEvents(), hasEvent(), hasSubscribers() and hasSubscriber() register event listeners and subscribers, applied at boot via the Event facade.
  • Optimize command registrationhasOptimizeCommands() registers artisan commands that run with php artisan optimize and php artisan optimize:clear, forwarding to Laravel's ServiceProvider::optimizes().
  • Configurable publish tag separatorhasPublishTagSeparator() sets the separator used for publish tags. Pass - for the classic flat format (my-package-config) instead of the default my-package::config; applies to vendor:publish tags and the install command alike. Pass an array (e.g. ['::', '-']) to register every group under multiple tag forms at once, with the first separator treated as primary.
2.1.1

Fixed

  • hasAssets() stored a wrong path — the directory was validated as ../<dir> but stored without the ../ prefix, so vendor:publish --tag=<name>::assets silently published nothing.
  • hasTranslations() rejected valid languages — the language-directory check used Collection::search(), whose 0 index for the first supported language was treated as a failure. Region locales (e.g. pt_BR, en-US) are now accepted as well.
  • hasViews() broke with a custom path — a relative path was passed unresolved to loadViewsFrom() and an absolute path (as documented) failed validation. Both are now resolved correctly.
  • routes, view-components and view-component-namespaces publish tags did nothing — the corresponding publish registrations were missing or never called. Route files are published to routes/vendor/<package-short-name>/.
  • publishMigrations() ignored an explicit file selection — publishing the whole directory of the first migration file instead of the configured files.
  • View components with list-style arrays received numeric aliases — a component at index 1+ of a non-associative array was registered under the alias 1; hasComponent() also registered the component twice.
  • packageCommands() was never called — commands returned from the documented override are now registered.
  • Install command no longer calls exit(0) — cancelling the production confirmation returns a proper exit code instead of terminating the process.
  • getVersion() no longer throws for packages without a composer name or not installed via Composer.
  • Test suite: PackageConfigWithFileNames was missing the Test suffix and never ran.

Changed

  • bootVewComposers() was renamed to bootViewComposers(); the misspelled method is kept as a deprecated alias.
  • PHPStan configuration added (phpstan.neon, level 5) so composer lint works.
  • Install command respects the provider's $tagSeparator — the tag separator is passed to the install command instead of being hardcoded to ::.
  • Packable is now part of the contract hierarchyProvidesPackageServices extends Packable, so providers following the documented implements Packable pattern are covered by the toolkit itself.

Deprecated

  • The HasAbout contract — unused by the toolkit; Packable already declares aboutData(). Will be removed in 3.0.
2.1.0

Removed

  • Dropped Laravel 10.x and 11.x support — both branches have passed their security-support end-of-life. The June 2026 advisories (including a High-severity CRLF injection, CVE-2026-48019) were patched only in Laravel 12.60+/13.9+ and never backported to 10.x or 11.x, so no secure release exists on those branches.

Changed

  • Minimum Laravel version raised to 12.61.1 / 13.12.0 — the illuminate/support constraint is now ^12.61.1|^13.12.0, pinning to the first releases patched against the June 2026 advisories. If you still depend on Laravel 10 or 11, stay on the ~2.0.0 release.
2.0.2

Fixed

  • About command data not merging — Custom about data returned from aboutData() on a service provider was never included in the php artisan about output; only the package Version was displayed. The provider's aboutData() is now passed through to the packager and merged with the version data as documented.
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.
terminal42/code-quality-tools
codifyo/ts-generator-bundle
andydefer/laravel-cluster
testo/fiber
mintobit/jobqueue
a4sex/maintenance-bundle
a4sex/entity-date-update
a4sex/client-identifier
a4sex/base-utilites
a4sex/key-value-storage
a4sex/micro-status
chilldev/dependency-injection-extra
datinglibre/datinglibre-app-api
biberltd/corebundle
bricre/symfony-bundle-test
biberltd/logbundle
dominium/http-adapter-bundle
dominium/google-analytics
a4sex/auto-clean-entity
christhompsontldr/laravel-inky