convenia/revisionable
Laravel package that keeps a revision history for Eloquent models, letting you track changes to records, see who edited them, and restore previous versions. A maintained fork of VentureCraft's Revisionable, useful for audit trails, compliance logging, and undo support.
^2.1 in composer.json rather than a bare composer require vendor/package. Check the package's own composer.json for illuminate/support and PHP version requirements — 5.5-era packages typically need PHP 7.0+.composer require, confirm the provider and any aliases landed in bootstrap/cache/packages.php and vendor/composer/installed.json. If they didn't, run composer dump-autoload and php artisan package:discover. Only fall back to adding the provider to config/app.php if the package has no extra.laravel block.php artisan vendor:publish --provider="Vendor\Package\PackageServiceProvider" (or the narrower --tag=config) and read the published config top to bottom. Every key is a decision you're making, and the defaults are rarely production-appropriate..env. Published config files get committed; anything credential-shaped should reference an env() key you add to .env and .env.example.php artisan migrate. Do this before touching application code so failures surface early.php artisan tinker and make a single successful call — a list/read operation against your configured credentials. It isolates auth and config problems from application code.src/*ServiceProvider.php (bindings, singletons, config merging, published tags), the config file, and the package's tests/ directory — package tests are usually the most accurate documentation of intended wiring.App\Services\FooClient) with methods named after your domain, not the package's. Day to day this costs ten minutes and pays for itself the first time you upgrade a major version, swap vendors, or need to mock the package in a feature test.config/services.php entry so ops can tune without a deploy. Change .env, then php artisan config:clear.app/Providers/EventServiceProvider instead of polling. If it exposes sync commands, register them in app/Console/Kernel.php with withoutOverlapping().setUp(); use RefreshDatabase if the package's migrations are published into your suite; Queue::fake() and Event::fake() to assert the package's side effects without exercising them.resources/views/vendor/{package} and override there rather than editing vendor/ — vendor edits vanish on composer update.env() returns null after config:cache. Any env() call inside a published config file is resolved at cache time. Always run php artisan config:clear after editing .env locally, and never call env() outside config files in your own code.composer update, delete bootstrap/cache/packages.php and bootstrap/cache/services.php, then composer dump-autoload.vendor:publish overwrites your edits. Bare vendor:publish re-copies files. Use --tag= for targeted publishes; --force only when you intend to discard local modifications to the config or views.composer show vendor/package) matches what the README documents. A surprising number of "package bugs" are a docs/version mismatch.php artisan tinker for container resolution and single calls, Log::debug() around the boundary of your adapter, storage/logs/laravel.log for swallowed exceptions, and php artisan route:list if the package registers routes you didn't expect.config/app.php provider registration you were carrying.extend()/custom-driver hooks on any manager class, and Blade/macro registration are the supported seams. Prefer them over subclassing package internals, which have no BC guarantee across minor versions.How can I help you explore Laravel packages today?