talvbansal/media-manager
A Laravel media manager for browsing, uploading, and organizing files across storage disks. It offers a ready-made file manager UI, image handling, and simple integration with Eloquent models and editors, making media management easier in Laravel applications.
Version 3.0.0 is a UI refresh plus internal cleanup — the public surface is unchanged, so onboarding is the same as any Laravel package with a published config and a web panel.
composer require <vendor>/<package>:^3.0
php artisan vendor:publish --provider="<Vendor>\<Package>\ServiceProvider" --force
php artisan optimize:clear
config/, the published assets directory under public/vendor/, and the package service provider (for the middleware/collector registration order)..env for local only, hit a representative route (one with auth, one query-heavy), and confirm the panel renders with the new UI before wiring it into anything else. If the panel loads with unstyled markup, your assets didn't republish — that's the 3.0 migration failure mode.Because the release is explicitly "everything else should work as it did before," treat this as a drop-in upgrade with an asset-republish tax rather than a rewrite.
Environment-gated enablement. Keep the package off by default and switch it on per-environment in config rather than in code. This makes CI and production behaviour independent of developer .env files.
Middleware ordering. If you register the package's middleware or collector manually, place it after session/auth middleware but before anything that terminates early (throttling, maintenance-mode checks). A collector that runs before auth sees an unauthenticated user and silently records nothing useful.
Asset strategy in a real app. Two workable approaches:
public/vendor/ — simple, but you must remember to --force republish on every major upgrade (exactly the 3.0 case).Extending rather than forking. Use the package's documented extension points (custom collectors/tabs/panels) registered from a small dedicated service provider — e.g. App\Providers\PackageExtensionsServiceProvider. This survives major upgrades; a forked view does not.
Test-suite isolation. Add an explicit disable in phpunit.xml (<env name="PACKAGE_ENABLED" value="false"/>). The 3.0 UI changes don't affect this, but leaving the package enabled in tests is the most common cause of flaky assertion output and slow suites.
Deploy checklist item. Any release that bumps this package should include an asset republish step in your deploy script. If your deploy runs php artisan vendor:publish --tag=<package>-assets --force idempotently, the 3.0 UI swap is a no-op for you.
config/<package>.php; if you never published it, you're fine, but confirm with php artisan vendor:publish --help or the package docs.public/vendor/ combined with new markup produces a half-broken panel. Delete the directory and republish rather than merging over it.Content-Security-Policy, expect console errors on first load after upgrading — check the browser network/console tab before assuming the package is broken.php artisan optimize:clear (or at minimum view:clear and config:clear) after the upgrade. On Octane or a long-running worker, restart the workers; they hold the old config in memory.APP_DEBUG and the package's own enable flag together. A package that self-enables on APP_DEBUG is a data-exposure risk if debug is left on.storage/logs/laravel.log first (collector exceptions are usually swallowed), then confirm the route/middleware is registered via php artisan route:list, then whether assets 404 in the network tab. That order resolves ~90% of cases.How can I help you explore Laravel packages today?