framework laravel 11: come scrivere clean code
Laravel è uno dei framework PHP più importanti per la creazione di applicazioni eleganti.
Per elevare la tua scrittura di codice, a livello di sviluppatore senior, è fondamentale non solo comprendere le funzionalità di Laravel, ma anche sapere come utilizzarle in modo efficace.
Questo articolo approfondisce le best practice e le insidie comuni e fornisce esempi di codifica sia sbagliati che giusti per guidarti nella scrittura di codice pulito, efficiente e scalabile in Laravel.
3 minuti
Capire Laravel
Prima di buttarsi nel codice, è essenziale avere una solida comprensione dell'ecosistema di Laravel, inclusa la sua architettura MVC, ORM (Eloquent), Blade templating e altri componenti come migrazioni, seeder e middleware. Laravel è progettato per rendere più semplici e intuitivi i task comuni come routing, autenticazione, sessioni e caching.
Scrivere codice pulito ed efficiente
1. Seguire le convenzioni di denominazione di Laravel
Esempio di codice sbagliato:
Denominazione incoerente e poco chiara:
class orderController extends Controller {
public function get_data_by_id($id) {
// ...
}
}
Esempio di codice ottimale:
Seguendo le convenzioni di denominazione di Laravel e gli standard PSR:
class OrderController extends Controller {
public function getDataById($id) {
// ...
}
}
// Using Resourceful Controllers:
Route::resource('orders', 'OrderController');
2. Utilizzare Eloquent ORM in modo efficace
Codice Sbagliato:
Utilizzo di query non elaborate o mancato sfruttamento del potenziale di Eloquent:
$users = DB::table('users')->where('votes', '>', 100)->get();
Esempio di codice ottimale:
Utilizzo dell'ORM di Eloquent per leggibilità e manutenibilità:
$users = User::where('votes', '>', 100)->get();
3. Sfrutta le relazioni in Eloquent
Codice Sbagliato:
Ignorando le relazioni Eloquent e unendo manualmente le tabelle:
$books = DB::table('books')
->join('authors', 'authors.id', '=', 'books.author_id')
->select('books.*', 'authors.name as author_name')
->get();
Esempio di codice ottimale:
Definizione e utilizzo delle relazioni eloquent:
class Book extends Model {
public function author() {
return $this->belongsTo(Author::class);
}
}
// Then you can easily get books with authors:
$books = Book::with('author')->get();
4. Principio DRY: Don't Repeat Yourself
Codice Sbagliato:
Ripetizione del codice in più metodi o controller:
public function show($id) {
$item = Item::find($id);
$categories = Category::all();
return view('item.show', compact('item', 'categories'));
}
public function edit($id) {
$item = Item::find($id);
$categories = Category::all();
return view('item.edit', compact('item', 'categories'));
}
Esempio di codice ottimale:
Estrazione di codice ripetuto in un singolo metodo o servizio:
private function getItemAndCategories($id) {
$data = Item::find($id);
$data = Category::all();
return $data;
}
public function show($id) {
$data = $this->getItemAndCategories($id);
return view('item.show', $data);
}
public function edit($id) {
$data = $this->getItemAndCategories($id);
return view('item.edit', $data);
}
5. Gestire la logica aziendale nei servizi
Codice Sbagliato:
Inserimento di logiche aziendali complesse direttamente nei metodi del controller:
public function store(Request $request) {
// Validating request and handling complex business logic
// ...
}
Esempio di codice ottimale:
Utilizzo di classi di servizio per gestire la logica aziendale:
class OrderService {
public function placeOrder($data) {
// Handle order placement logic
}
}
// In Controller
public function store(Request $request, OrderService $orderService) {
$orderService->placeOrder($request->all());
// ...
}
Ottimizzazione e best practice
Aggiorna regolarmente le dipendenze: mantieni aggiornata la tua applicazione Laravel e le sue dipendenze per beneficiare delle ultime funzionalità, dei miglioramenti delle prestazioni e delle patch di sicurezza.
Utilizza i comandi Artisan: lo strumento da riga di comando Artisan di Laravel offre una miriade di comandi per velocizzare lo sviluppo, dalla generazione di codice boilerplate alla gestione delle migrazioni del database.
Migrazioni di database e seeder: sfrutta le migrazioni per il controllo delle versioni del database e i seeder per popolare il tuo database con dati iniziali o fittizi.
Middleware per la riutilizzabilità: implementare un middleware per problematiche trasversali quali registrazione, autenticazione e memorizzazione nella cache.
Test automatizzati: scrivi test utilizzando PHPUnit o le funzionalità di test integrate di Laravel per garantire che la tua applicazione sia affidabile e manutenibile.
Processi in coda per processi lunghi: utilizza il sistema di code di Laravel per gestire attività che richiedono molto tempo, come l'invio di e-mail o l'elaborazione asincrona di immagini.
Ercole Palmeri
#PHPTutorial #SoftwareEngineering #tutorialdilaravelPHP https://bloginnovazione.it/framework-laravel-11/52669/
Commenti
Posta un commento