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

Launcher Laravel Package

armincms/launcher

ArminCMS Launcher adds a configurable application launcher to Laravel admin panels, letting you register shortcuts, menu entries, and quick actions through simple configuration so users can jump straight to any ArminCMS module or tool.

View on GitHub
Deep Wiki
Context7

Getting Started

  • Install with composer require vendor/package:^0.1. Since 0.1.0 is a stable tag, no minimum-stability flag is needed — but pin it (0.1.*) while you evaluate.
  • First look at the package's composer.json: check require (PHP and illuminate/* constraints) and extra.laravel for auto-discovered service providers and facades.
  • Then read, in this order: README, src/*ServiceProvider.php, the config/ file, and tests/. On a first release the tests are usually the most accurate documentation of intended behavior.
  • Publish whatever the package ships:
    php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider"
    
    Run it with no arguments first to see which tags exist — config, migrations, and stubs are often separate tags.
  • Pick the smallest end-to-end path as your first use case: one config value plus one call site, verified in php artisan tinker or a single feature test. Do not wire it into application code until that path works.

Implementation Patterns

  • Wrap usage behind a thin adapter or interface you own. A 0.x package should not leak across your codebase — one class holding the dependency keeps removal cheap.
  • Prefer constructor injection via a binding in your own service provider over facades and app() calls in domain code. Facades are fine at the edges (controllers, commands).
  • Keep the published config file in config/ and drive values from env(). When upgrading, republish to a temp path and diff rather than --force: you will lose local edits otherwise.
  • If migrations ship with the package, publish them, review the schema, and commit them. Never run vendor migrations unreviewed in production.
  • Point the package at fakes in tests through its config (in-memory drivers, null transports), and combine with Http::fake() / Queue::fake() if it makes outbound calls.
  • For queued or scheduled work, register schedules in your own routes/console.php or Kernel and wrap calls in jobs you own — this keeps retries, backoff, and monitoring under your control.
  • Add one feature test in your app that asserts the package's core behavior. That is your regression net for the next minor bump.

Gotchas and Tips

  • 0.x means minor bumps may break you. Read CHANGELOG before every composer update, and commit composer.lock so CI resolves the same versions.
  • Config caching. php artisan config:cache breaks closures in config files and any env() call the package makes outside a config file. If it "works in tinker but not in prod", run config:clear first.
  • Provider not registered? Check bootstrap/cache/packages.php, then composer dump-autoload and php artisan package:discover. Discovery is disabled in some deploy setups.
  • Forgotten publish step is the most common first-release failure. Inspect vendor/vendor/package/ for config/, database/migrations/, and resources/ even when the README omits them.
  • Debug with php artisan about, php artisan package:discover, and a one-line tinker call — faster than reading stack traces from a half-configured provider.
  • Extension points to look for: interfaces bound in the provider, macros, events, and publishable stubs. If none exist, treat the package as sealed and wrap it rather than patching vendor code.
  • Audit the dependency tree with composer why and composer outdated; first releases frequently carry loose transitive constraints or unmaintained deps.
  • There is no upgrade guide yet. Your own feature test from the setup step is what will catch a breaking 0.2.0 — not the release notes.
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.
laravel2580/idehelpers
delatbabel/viewpages
anavel/gettext
muhamadrezaar/highcharts
delatbabel/keylists
frankkessler/salesforce-laravel-oauth2-rest
anavel/foundation
wdmtech/enviricons
eii/laravel-captcha
muka/shape-reader
tdt/json
refinery29/php-cs-fixer-config
hotmeteor/eco-env
mvaliolahi/hydrate
wearede/tbcpay-php
parsnick/steak
thibaud-dauce/mattermost-php
multilinguals/apollo-client
antaresbr/collection
kr0lik/phpstan-rules