Laravel Extended Commands Development
When to use this skill
Use this skill when a Laravel task should use this package's generators instead of handwritten boilerplate.
Typical triggers:
- the request mentions
make:action,make:builder,make:collection,make:concern,make:contract, ormake:facade - the request wants a model plus its custom builder or collection via
make:model --builderormake:model --collection - the request needs the package's default namespaces, generated methods, or generated facade accessor behavior
Do not use this skill for unrelated Laravel generators or when the project is not using mrpunyapal/laravel-extended-commands.
Core package conventions
This package exists to generate common Laravel structures in the package's preferred locations instead of leaving those classes to manual boilerplate.
make:actioncreates actions inApp\Actionsmake:buildercreates custom builders inApp\Models\Buildersmake:collectioncreates custom collections inApp\Models\Collectionsmake:concerncreates traits inApp\Concernsmake:contractcreates interfaces inApp\Contractsmake:facadecreates facades inApp\Facades
Prefer the generator over hand-writing the file so the namespace, base class, and method skeleton match the package's conventions.
High-value behavior to remember
make:actiongenerateshandle()by default and switches to__invoke()with--invokablemake:builderandmake:collectionaccept--modelto add generic PHPDoc for the related modelmake:facadederives a snake_case accessor from the generated class name- nested names should be passed directly to the generator instead of creating the file and moving it later
- the extended
make:modelcommand can scaffold the matching builder and collection and wirenewEloquentBuilder()ornewCollection()onto the model
When exact syntax, options, or prompts matter, use Artisan help instead of guessing:
php artisan help make:action
php artisan help make:builder
php artisan help make:collection
php artisan help make:facade
php artisan help make:model
Workflow guidance
If the task starts from a model and needs custom Eloquent primitives, prefer the model workflow first so the generated imports and methods stay aligned.
If the task starts from a standalone class, use the dedicated generator for that class type.
If the task wants namespaced output, pass the nested name directly to the generator.
Pitfalls
- do not recreate package-generated boilerplate manually unless the user explicitly wants a custom shape
- do not assume standard Laravel
make:modelalso adds builder or collection wiring without this package's flags - do not invent facade accessors manually when the generator already derives them from the class name
Verification
- Confirm the generated file landed in the expected namespace directory.
- For model-driven scaffolding, confirm both the model and companion builder or collection were generated.
- If you changed generator behavior, run the relevant package tests.
Source: MrPunyapal/laravel-extended-commands — distributed by TomeVault.