in realtà la pagina non si rappresenta con una classe. Questa impostazione cmporterebbe la creazione di una classe per ogni pagina che vuoi creare.
in realtà la agina usufruisce delle classi per poterti far ottenere ciò che vuoi.
Devi pensare alle classi (che in realtà, in questo caso si chiamano oggetti) cme a degli strumenti per raggiungere uno scopo.
una classe non è altro che una rappresentazione astratta di un problema. Che vuol dire questo?
Vuol dire che se vuoi fare l'upload di un file tramite form con l'approccio procedurale dovrai scrivere ogni volta il codice necessario. Con una classe ti basterà, invece, scrivere
$obj->upload() ;
Tu hai scritto solo poche lettere ma all'interno della classe verrà eseguito molto codice come può essere eseguito pochissimo codice. Tu non lo sai, sai solo che alla fine il file viene caricato dove tu vuoi che venga caricato.
Mi dirai "e se uso na funzione non è la stessa cosa?". io ti rispondo no.
mettiamo il cas che tu, a secnda del tipo di file caricato, volgia comportarti in maniera differente.
Ti faccio un esempio.
Hai un sito di immagini. Queste immagini vengono caricate tramite form. L'utente, però ha sia possibilità di caricare un'immagine che quella di caricare un file zip contenente delle immagini.
Ne risulta che, ne caso in cui venga caricata un'immagine, tu vuoi che la stessa venga ridimensionata. Se invece viene caricato un file zip vuoi prima estrarre le immagini e poi ridimensionarle.
Come fare?
Con un approccio procedurale sei tu a dover implementare le varie funzioni nel codice.
Con le classi, invece, avrai:
1) La classe che effettua l'upload (class upload)
2) La classe che effettua il ridimensionamento (class resizer)
3) La classe che estrae i dati dal file zip (class zipHandler)
4) Una classe che gestisce il tutto (class driver)
Cosa succede?
Succede che tu userai la classe driver alla quel passerai il nome del file. Farai quindi qualcosa del genere:
$driver->upload( 'nome_file.ext' ) ;
Basta. non dovrai fare più niente.
La classe automaticamente vedrà che tipo di file è. Se il file è un'immagine la ridimensiona, se è un file zip estrae le immagini e poi le ridimensiona.
Ovviamente le classi dovranno essere prorammate in modo da poter interagire tra loro ma alla fine tu dovrai scrivere solo uncomando per fare una marea di operazioni. Questo è il vantaggio derivante dalle classi e dalla conseguente oop.
Scrivi il cidice una volta e poi hai fatto.
ovviamente qesto ti farà perdere un po' più di tempo la prima volta che affronti un problema ma ti ripagherà facendotene risparmiare moltissimo ogni volta che avrai bisogno di usare quella funzione.
in pratica ti costruisci da solo gli strmenti che ti servono cercando di renderli il più generalizzati possibile er poterli utilizzare il maggior numero di volte e nei casi più disparati. (ovviamente non potrai costruire una classe per l'upload e per generalizzarla ci metti dei metodi che mandino e-mail!).