Laravel Tips i Bones Pràctiques

Laravel Tips i Bones Pràctiques

Instal·lació de Laravel

Laravel és un framework PHP modern i molt potent. Per començar un projecte nou, utilitza Composer:

composer create-project laravel/laravel nom-projecte

Models

Els models representen taules a la base de dades i són una part clau de l’Eloquent ORM.

Exemple:

php artisan make:model NomModel -m

El flag -m genera també una migració.

Relacions Eloquent

  • Un a Molts (One to Many): Una Category pot tenir molts Products.
  • Molts a Molts (Many to Many): Una User pot tenir molts Roles i viceversa.
  • Un a Un (One to One): Un User pot tenir un Profile.

Exemples ràpids:

public function products() { return $this->hasMany(Product::class); }

public function roles() { return $this->belongsToMany(Role::class); }

Controladors

Genera un controlador amb:

php artisan make:controller NomControlador

Controlador amb recursos:

php artisan make:controller NomControlador –resource

Exemple de ruta associada:

Route::resource(‘products’, ProductController::class);

Plantilles Blade

Blade és el sistema de plantilles de Laravel. Exemple bàsic:

[blade]
<ul>
@foreach ($products as $product)
<li>{{ $product->name }}</li>
@endforeach
</ul>

Tips i Bones Pràctiques

  • Organitza bé els teus fitxers (Models, Controllers, Views…)
  • Utilitza migracions per gestionar els canvis a la base de dades.
  • Fes servir validació amb FormRequest per mantenir els controladors nets.
  • Utilitza tinker per provar funcionalitats ràpidament: php artisan tinker
  • Utilitza accés a dades a través dels Models i no directament amb SQL.
  • Separa la lògica en serveis si el controlador creix massa.
  • Utilitza soft deletes si vols eliminar registres sense perdre’ls realment.

Paquets Recomanats

  • spatie/laravel-permission: Gestió de rols i permisos.
  • laravel-debugbar: Barra de debug molt útil per entorn local.
  • spatie/laravel-medialibrary: Gestió de fitxers i imatges.
  • barryvdh/laravel-dompdf: Generació de PDFs.
  • livewire/livewire: Per crear components dinàmics sense JavaScript.