Salve a tutti
ho un dubbio riguardante l'OOP che non sono mai riuscito a togliermi sin da quando ho iniziato a studiare Java, e che ora mi affligge anche per il PHP.
Quali sono i criteri per capire se conviene passare variabili attraverso chiamate a funzioni piuttosto che passare le stesse ad un costruttore?
Vi faccio l'esempio specifico. Devo realizzare un form per la registrazione con 3 file:
- un controller (equivalente del main in Java)
- il form html
- la classe Utente, che contiene i vari metodi per validare i campi e creare l'utente nel db
Ora, prima di tutto ho creato nel controller una funzione che mi permette di eseguire il trim dei campi ottenuti con $_POST e la conversione dei caratteri potenzialmente pericolosi (con htmlspecialchars), e solo dopo creo un istanza della classe Utente che inizializzo con l'array dei vari campi , sui quali eseguirò i controlli (fin qui tutto giusto o devo invertire l'ordine di validazione e conversione?)
Poi, siccome ho creato un metodo nella classe Utente che richiede anche di verificare la presenza dei campi obbligatori, ho creato l'array $required che a questo punto non credo mi convenga passare al costruttore, dato che si tratta di una parziale ridondanza. Ora, in Java il passaggio per riferimento di variabili primitive non è consentito, e per ovviare al problema bisogna per forza di cose usare i campi di esemplare (quindi passaggio di variabili al costruttore) per tutti i metodi modificatori, mentre per i metodi di accesso si può fare come si vuole.
In PHP nel caso specifico, in realtà potrei benissimo non passare alcunché al costruttore, e richiamare semplicemente le funzioni passando i parametri per riferimento. Poi, siccome è possibile registrare un utente per volta mi chiedo pure a che serve istanziare un oggetto, potrei benissimo dichiarare tutto static oppure fare persino a meno delle classi (cosa che comunque non voglio per una questione di coerenza col resto del codice). Dunque cosa mi consigliate?