Skip to content

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']);