yxx/laravel-quick
Laravel Quick is a lightweight toolkit for faster Laravel development. It provides convenient helpers and shortcuts for common tasks, reducing repetitive boilerplate and streamlining everyday workflows so you can build and maintain applications with less setup and ceremony.
yxx/laravel-quick is a small (14 stars), single-maintainer Laravel scaffolding package aimed at "agile development" — the usual shape for this class of package is artisan commands that generate boilerplate (models, controllers, requests, routes, sometimes views) from an existing database table, plus a handful of base classes/traits for response handling.
Minimal steps:
composer.json require block for laravel/framework and php constraints before installing; on Laravel 10/11 you will likely need --ignore-platform-reqs or a fork.composer require yxx/laravel-quick
Verify the service provider was registered by checking vendor/yxx/laravel-quick/composer.json → extra.laravel.providers. If it's absent, add the provider manually in config/app.php (or bootstrap/providers.php on newer Laravel).php artisan list | grep -i quick
to enumerate the commands it actually registers, and read src/Console/ (or src/Commands/) directly — for a package this size the source is the documentation.php artisan vendor:publish --provider="Yxx\LaravelQuick\QuickServiceProvider"
Publishing stubs before generating anything is the single most important step, because it's the only real customization hook you get.tags or categories table with 3–4 columns), generate the full CRUD stack, and read every generated file line by line. This tells you more about the package's conventions in ten minutes than the docs will in an hour.Scaffold-once, then own the code. The healthy way to use a package like this is as a one-shot generator, not a runtime dependency. Generate the CRUD for a table, commit the output, then delete or stop using the package. Treat the generated files as a starting template you now maintain. This sidesteps the package's staleness entirely and is how most teams get value out of low-maintenance generators.
Migration-first workflow. Write and run your migration, then generate from the live table so the generator can read column types. The typical loop is:
make:migration → migrate → quick:generate (table) → review → edit → test
Generating before the migration exists is the most common cause of empty or wrong-typed output.
Stub override as your customization layer. If the package supports published stubs, fork the stubs in resources//stubs/ and encode your house style there — your base controller, your response format, your namespace conventions. Every subsequent generation then comes out closer to production-ready. This is the highest-leverage pattern: change the template once, benefit on every table.
Wrap generated controllers in your own base class. Generated controllers usually extends Controller. Repoint them at your application base controller (with your auth middleware, response helpers, pagination defaults) rather than hand-editing each generated file.
Route registration discipline. Generated routes tend to be dumped into routes/web.php or a package route file. Move them into a dedicated routes/admin.php (or a resource route group with your middleware stack) immediately, so generated routes don't collide with hand-written ones and so you can gate them behind auth/permissions.
Prototype vs. production split. Use it for internal admin panels, back-office CRUD, and spike prototypes where speed beats polish. Do not let its output reach a public-facing surface without a review pass — generated validation, authorization, and mass-assignment defaults are rarely production-grade.
Pair with a real admin layer. For day-to-day CRUD screens, most teams will get further combining a generator with something like Filament or Nova for the UI, using laravel-quick only for the model/request scaffolding.
composer.json and be prepared to vendor/fork it.Route facades, pagination, model $casts). Symptoms are usually a BindingResolutionException or a missing-method BadMethodCallException at boot — not a clean install error. If it won't boot, stop and fork rather than fight it.php: ^7.4|^8.0; on PHP 8.2/8.3 this can block composer require. Override with composer require yxx/laravel-quick --ignore-platform-reqs only after reading the source for anything version-sensitive (typed properties, str_* calls).DB_CONNECTION vs. the connection the package assumes), or (c) a naming-convention mismatch (snake_case table → StudlyCase model). Check the generated file on disk before assuming the command failed.blog_posts and posts can produce colliding model/controller names if the generator strips prefixes inconsistently. Generate into a subnamespace (Admin\) if you have many similar tables.vendor:publish, run php artisan config:clear. A stale bootstrap/cache/config.php is a frequent "my config change did nothing" cause.git diff the output. Because the package has no tests you can rely on, the diff is your test suite — you'll immediately see exactly what conventions it injected.docs/generators.md note in your repo. Six months from now nobody will remember which generator produced which controller, and regenerating with a different version will produce a confusing diff.How can I help you explore Laravel packages today?