I traits in PHP | Aulab

GUIDE PER ASPIRANTI PROGRAMMATORI

I traits in PHP

Come abbiamo ripetuto diverse volte nelle nostre guide per imparare php, nella programmazione informatica moderna, un grande focus è posto sull’evitare il più possibile la duplicazione del codice. Sappiamo bene, ormai, che un codice duplicato rende la manutenzione del software molto più difficile, in quanto ogni duplicato deve essere mantenuto costante, e che un bug…

Lezione 25 / 26
Davide Cariola
Immagine di copertina

Vuoi avviare una nuova carriera o fare un upgrade?

Trova il corso Digital & Tech più adatto a te nel nostro catalogo!

Come abbiamo ripetuto diverse volte nelle nostre guide per imparare php, nella programmazione informatica moderna, un grande focus è posto sull’evitare il più possibile la duplicazione del codice. Sappiamo bene, ormai, che un codice duplicato rende la manutenzione del software molto più difficile, in quanto ogni duplicato deve essere mantenuto costante, e che un bug non può essere trovato/risolto in un unico punto.

Nell’ambito della programmazione ad oggetti, alcuni limiti strutturali di PHP possono rendere abbastanza complicato mantenere al minimo la duplicazione di codice. Abbiamo anche detto, nei precedenti capitoli, che PHP non supporta l’ereditarietà multipla, e questo potrebbe, ovviamente, portare all’impossibilità di riutilizzare determinati metodi su classi che invece vorrebbero poterli utilizzare senza legarsi con l’ereditarietà.
E’ proprio per questo che, a partire dalla versione 5.4, PHP implementa un metodo di riutilizzo del codice chiamato Traits.

Traits PHP: cosa sono, come si dichiarano, come si usano
I traits nascono con l’obiettivo di ridurre alcune limitazioni dettate dall’ereditarietà singola propria di PHP, consentendo allo sviluppatore web di poter riutilizzare una serie di metodi senza che questi debbano essere ereditati da qualche altra classe.
Prendiamo ad esempio una classe Person e una classe Dog.

class Person{}
class Dog{}

Sappiamo bene che né persone né cani possono volare, ma, magari, potrebbero volerlo fare. È qui che entrano in gioco i traits: potremmo pensare che, dotando di un jetpack una persona e un cane, essi possano effettivamente poter volare.

trait Jetpack {
  public function volo(){
    echo "*Vola alto nel cielo*\n";
  }
}

Quello che dobbiamo fare, adesso, è specificare alla classe Persone e alla classe Dog che possono effettivamente usare un jetpack.

class Person{
  use Jetpack;
}

class Dog{
  use Jetpack;
}

Tramite la keyword use, noi stiamo dicendo alle due classi che hanno accesso a tutte le proprietà e metodi del trait Jetpack, potendole quindi utilizzare.

$persona = new Person();
$cane = new Dog();
$persona->volo();
$cane->volo();

//Output:
*Vola in alto nel cielo*
*Vola in alto nel cielo*

In questo modo, due classi completamente a sé stanti, non legate in nessun modo, hanno accesso al medesimo metodo volo().

Inoltre, una classe può utilizzare multipli traits, senza alcun tipo di problema, andando a espandere ancor di più le nostre possibilità.
Possiamo pensare ai traits come una pennellata che aggiunge dei tratti caratteristici ad una serie di classi che non sono legate da un rapporto di ereditarietà.

L’unica cosa da ricordare è che non possiamo chiamare i traits con lo stesso nome utilizzato per una classe, pena un fatal error.
In conclusione, i traits rappresentano uno strumento importantissimo che contribuisce a migliorare la progettazione delle nostre applicazioni, rimuovendo la necessità di duplicare il codice e aiutandoci con la pulizia e la manutenibilità dello stesso.

Sei indeciso sul percorso? 💭

Parliamone! Scrivici su Whatsapp e risponderemo a tutte le tue domande per capire quale dei nostri corsi è il più adatto alle tue esigenze.

Oppure chiamaci al 800 128 626