Stavo iniziando un progetto oggi e, dopo aver progettato la struttura del database e il modo in cui i dati sarebbero stati archiviati, ho iniziato l'implementazione. Lo sto facendo su php, ma qui il linguaggio non è rilevante, dato che i miei dubbi sono più legati all'architettura o immagino, dal momento che sto lottando più di quanto pensassi implorando cose in OOP su PHP. (Recentemente sono passato su PHP, ho scritto codice in c ++ e java prima).
Quindi, ho iniziato creando la mia classe "Utente", semplice, pochi attributi e __costruire, inserire, aggiornare ed eliminare metodi. Quelli ultimi 3, domande al db.
Quindi questo dubbio mi è venuto alla testa, e probabilmente conosco la risposta da solo ma non lo so.
Ora posso creare istanze e creare nuovi utenti: $ user = new User ("John", 34) ma, cosa succede se voglio modificare l'utente "Dave"? O voglio mostrare tutti gli utenti. Questo metodo, ad esempio, getAllUsers () restituirebbe tutti gli utenti in cui verrebbero implementati? Perché in realtà non appartiene alla classe Utente giusto? Se lo facesse, allora come dovrei istanziare quel metodo se non ho alcuna istanza Utente?
Credo che avrei bisogno di una classe Users o UserCollection che sarebbe una raccolta di tutti gli utenti, con i metodi'getCertainUser (id) 'e'getAllUsers ()' che restituirebbero determinati utenti o tutti loro, ora poi avrei un utente che sarei in grado di modificare. Questo è il modo in cui ho fatto sia in Java che in C ++, dato che non ho usato un database per archiviare i dati, è stato memorizzato su un Set / Mappa o qualunque sia la struttura, e quindi salvato su file.
Detto questo, le mie domande sono: come dovrebbe essere affrontato questo problema come strada da percorrere, sto complicando troppo le cose? Come questo dovrebbe essere risolto 'nel modo corretto' in OOP. Le volte in cui ho gestito problemi simili non ho mai usato un database, quindi avere un gruppo di utenti era l'unico modo per memorizzarli, ma avere il database che memorizza gli utenti si sente ridondante per avere quella raccolta di utenti.
Grazie in anticipo.