maxorade / laravel-generator
Artisan generators for Laravel projects.
Requires
- php: ^8.2
- illuminate/support: ^11.0|^12.0|^13.0
README
Generadores Artisan para acelerar el desarrollo de aplicaciones Laravel.
Este paquete proporciona comandos personalizados que permiten generar código y configurar automáticamente proyectos Laravel siguiendo una arquitectura limpia, consistente y reutilizable, reduciendo el trabajo repetitivo y acelerando el desarrollo de nuevos módulos.
Características
Actualmente el paquete permite:
- Generación automática de Services CRUD.
- Generación automática de Controllers API.
- Generación automática de Controllers Web.
- Generación automática de autenticación API con Laravel Sanctum.
- Administración de ambientes Laravel.
- Configuración automática de CORS.
- Configuración automática de Scramble.
Todo el código generado sigue una estructura limpia y utiliza Stubs completamente personalizables, permitiendo adaptar fácilmente la generación de código a cualquier proyecto.
Requisitos
- PHP 8.2 o superior.
- Laravel 11, 12 o 13.
Instalación
composer require maxorade/laravel-generator
Comandos disponibles
Generadores
| Comando | Descripción |
|---|---|
php artisan make:service Modelo | Genera un Service CRUD. |
php artisan make:service --all | Genera Services para todos los modelos. |
php artisan make:service --all --except=User,PersonalAccessToken | Genera Services excluyendo modelos. |
php artisan make:controller-api Modelo | Genera un Controller API CRUD. |
php artisan make:controller-api Modelo --attributes | Genera un Controller API utilizando $fillable y $casts. |
php artisan make:controller-api --all | Genera Controllers API para todos los modelos. |
php artisan make:controller-api --all --attributes | Genera Controllers API con validaciones automáticas. |
php artisan make:controller-web Modelo | Genera un Controller Web CRUD. |
php artisan make:controller-web Modelo --attributes | Genera un Controller Web utilizando $fillable y $casts. |
php artisan make:auth-api | Genera autenticación API con Laravel Sanctum utilizando el modelo User. |
php artisan make:auth-api Modelo | Genera autenticación API para un modelo específico. |
php artisan make:auth-api Modelo --no-simulated | Genera autenticación sin login simulado. |
php artisan make:auth-api Modelo --system=backoffice | Genera autenticación utilizando tokens Sanctum con abilities por sistema. |
php artisan make:auth-api Modelo --system=backoffice --abilities=read,write,export,admin | Genera abilities personalizadas utilizando el sistema como prefijo. |
php artisan make:envs --create | Genera .env.development, .env.testing y .env.production. |
php artisan make:envs --deploy=development | Cambia al ambiente Development. |
php artisan make:envs --deploy=testing | Cambia al ambiente Testing. |
php artisan make:envs --deploy=production | Cambia al ambiente Production. |
php artisan make:envs --current | Muestra el ambiente actual. |
php artisan make:envs --list | Lista los ambientes disponibles. |
Configuración
| Comando | Descripción |
|---|---|
php artisan configure:cors | Configura automáticamente CORS utilizando variables de entorno. |
php artisan configure:scramble | Instala y configura Scramble con autenticación Bearer. |
Ejemplos
Generar Services
php artisan make:service --all --except=User,PersonalAccessToken
Generar Controllers API
php artisan make:controller-api --all --attributes
Generar un Controller Web
php artisan make:controller-web ConfiguracionGlobal --attributes
Generar autenticación API
php artisan make:auth-api User
Genera automáticamente:
app/
├── Services/
│ └── UserAuthService.php
└── Http/
└── Controllers/
└── Api/
└── UserAuthController.php
Además registra automáticamente las rutas:
Route::post('/login-users', [UserAuthController::class, 'login']);
Route::middleware('auth:sanctum')->get('/me-users', [UserAuthController::class, 'me']);
Route::middleware('auth:sanctum')->post('/logout-users', [UserAuthController::class, 'logout']);
El modelo también es preparado automáticamente para utilizar Laravel Sanctum.
Generar autenticación API por sistema
php artisan make:auth-api UsuarioAdmin \
--system=backoffice \
--abilities=read,write,export,admin
Genera automáticamente un token Sanctum con abilities:
$token = $user->createToken(
'backoffice',
[
'backoffice.read',
'backoffice.write',
'backoffice.export',
'backoffice.admin',
]
)->plainTextToken;
Y registra las rutas protegidas mediante abilities:
Route::post('/login-backoffice', [UsuarioAdminAuthController::class, 'login']);
Route::middleware([
'auth:sanctum',
'abilities:backoffice.read'
])->group(function () {
Route::get('/me-backoffice', [UsuarioAdminAuthController::class, 'me']);
Route::post('/logout-backoffice', [UsuarioAdminAuthController::class, 'logout']);
});
Si no se especifica --abilities, el generador crea automáticamente:
backoffice.read
backoffice.write
Configurar ambientes
php artisan make:envs --create
Configurar CORS
php artisan configure:cors
El comando:
- Publica
config/cors.phpsi no existe. - Agrega
CORS_ALLOWED_ORIGINSa:.env.env.development.env.testing.env.production
- Configura
config/cors.phppara utilizar la variable de entorno.
Configurar Scramble
php artisan configure:scramble
El comando:
- Instala Scramble si no existe.
- Publica
config/scramble.php. - Configura automáticamente autenticación Bearer.
- Limpia la caché de configuración.
Roadmap
v1.0.0
- ✅
make:service
v1.1.0
- ✅
make:controller-api
v1.2.0
- ✅
make:envs
v1.3.0
- ✅
make:controller-web - ✅
make:service --all - ✅
make:controller-api --all
v1.4.0
- ✅
configure:cors - ✅
configure:scramble
v1.5.0
- ✅
make:auth-api - ✅ Soporte para
--system - ✅ Soporte para
--abilities - ✅ Soporte para
--no-simulated
Próximas versiones
v1.6.0
make:request
v1.7.0
make:crud
v2.0.0
make:modulemaxorade:setup-apimaxorade:doctor- Generación automática de módulos completos.
- Generación automática de rutas.
- Generación de Form Requests.
- Generación de Policies.
- Generación de Repositories.
- Generación de documentación Scramble.
- Generación de vistas Blade.
Contribuciones
Las contribuciones son bienvenidas.
Si encuentras un error o deseas proponer una nueva funcionalidad, puedes crear un Issue o enviar un Merge Request.
Licencia
Este proyecto se distribuye bajo la licencia MIT.
Desarrollado por Maxorade.