Convenciones de Nombres
Nombres de Modelos y Tablas
- Los modelos deben tener nombres en singular y seguir la convención PascalCase. Ejemplo:
Company,User,Order. - Las tablas en la base de datos deben ser plurales. Ejemplo:
companies,users,orders. Laravel respeta esta convención automáticamente.
Nombres de Controladores
- Los controladores deben usar nombres en plural con el sufijo
Controller. Ejemplo:CompaniesController,OrdersController. - Para acciones no RESTful, utiliza controladores invocables con el método
__invoke.
Definir rutas con controladores invocables:
php
Route::post('/companies/{id}/activate', ActivateCompanyController::class);Nombres de Métodos
Los métodos RESTful en los controladores deben seguir las convenciones estándar:
index(): Lista de recursos.show($id): Mostrar un recurso.store(): Crear un nuevo recurso.update($id): Actualizar un recurso.destroy($id): Eliminar un recurso.
Para métodos personalizados, usa camelCase y asegúrate de que sean descriptivos. Ejemplo: calculateDiscount(), sendNotification().
Rutas
Sigue las convenciones REST al definir las rutas:
php
Route::delete('companies', [CompaniesController::class, 'index']);
Route::get('/companies/{id}', [CompaniesController::class, 'show']);
Route::post('/companies', [CompaniesController::class, 'store']);
Route::put('/companies/{id}', [CompaniesController::class, 'update']);
Route::delete('/companies/{id}', [CompaniesController::class, 'destroy']);Puedes usar Route::resource para reducir la cantidad de código repetido:
php
Route::resource('companies', CompaniesController::class);
Route::resource('companies', CompaniesController::class)->only(['store', 'update', 'destroy']);Para rutas adicionales, utiliza nombres claros y descriptivos:
php
Route::post('/companies/{id}/activate', [ActivateCompanyController::class, '__invoke']);