8 – Programmazione a Oggetti (OOP) in PHP
Introduzione
La programmazione a oggetti (OOP) è un paradigma che consente di organizzare il codice in modo più modulare, riutilizzabile e leggibile. PHP supporta pienamente l’OOP a partire dalla versione 5, rendendolo uno strumento potente non solo per siti web semplici, ma anche per applicazioni complesse.
Concetti chiave:
-
Classe → un modello, una struttura che definisce proprietà e metodi.
-
Oggetto → un’istanza concreta di una classe.
-
Proprietà → variabili appartenenti alla classe.
-
Metodi → funzioni che appartengono alla classe.
Classi e Oggetti
Una classe può essere vista come il progetto di un edificio, mentre l’oggetto è l’edificio costruito secondo quel progetto.
-
Dichiarare una classe significa definire il comportamento e le caratteristiche.
-
Creare un oggetto significa avere una copia concreta che può essere utilizzata.
Esempio concettuale:
-
Classe: “Automobile” (ha proprietà come colore, marca, modello; e metodi come accendi(), frena()).
-
Oggetto: una Fiat Panda rossa (istanza reale della classe Automobile).
Proprietà e Metodi
-
Proprietà: rappresentano lo stato dell’oggetto.
-
Esempio:
$colore,$marca,$prezzo.
-
-
Metodi: rappresentano le azioni che l’oggetto può compiere.
-
Esempio:
accendi(),frena(),mostraDettagli().
-
Visibilità delle proprietà e metodi
-
public → accessibile ovunque.
-
private → accessibile solo all’interno della classe.
-
protected → accessibile dalla classe e dalle sue sottoclassi.
Costruttori e Distruttori
Quando si crea un oggetto, spesso è utile inizializzare automaticamente alcune proprietà: questo è il compito del costruttore (__construct).
-
Costruttore: metodo speciale che viene chiamato automaticamente alla creazione dell’oggetto.
-
Distruttore: metodo (
__destruct) che viene chiamato quando un oggetto non è più utilizzato, ad esempio per liberare risorse.
Esempio concettuale:
-
Un oggetto Database può aprire la connessione al momento della creazione (costruttore) e chiuderla quando non serve più (distruttore).
Ereditarietà
Uno dei principi fondamentali dell’OOP è il riuso del codice.
L’ereditarietà consente a una classe di derivare da un’altra, ereditando proprietà e metodi.
-
Classe base: contiene attributi e comportamenti comuni.
-
Classe derivata: aggiunge o modifica comportamenti specifici.
Esempio concettuale:
-
Classe Utente → ha nome, email, metodo
login(). -
Classe Admin (eredita da Utente) → ha in più i permessi di gestione, metodo
cancellaUtente().
Esercizio: Simulazione di gestione utenti con classi
Obiettivo
Creare un sistema semplificato per gestire utenti e amministratori con PHP OOP.
Passaggi logici
-
Definire la classe Utente con proprietà (nome, email) e metodo
login(). -
Aggiungere un costruttore per inizializzare i dati dell’utente.
-
Definire la classe Admin che eredita da Utente e aggiunge il metodo
cancellaUtente(). -
Creare più oggetti (utenti e admin) e simulare alcune operazioni.
Estensione
-
Inserire la proprietà password con metodo
verificaPassword(). -
Aggiungere un metodo che restituisce una stringa con i dettagli dell’utente.
-
Creare una piccola lista utenti e ciclare per mostrare i loro dati.
Conclusione
La programmazione a oggetti in PHP consente di organizzare il codice in modo elegante e scalabile. Con le classi si definisce la struttura, con gli oggetti si creano istanze reali. I costruttori e i distruttori gestiscono l’inizio e la fine del ciclo di vita, mentre l’ereditarietà permette di riutilizzare il codice e specializzarlo. L’esercizio proposto simula un caso reale, ossia la gestione degli utenti, che rappresenta la base di molti sistemi web (registrazioni, login, aree riservate).

Nessun commento:
Posta un commento