Sono un programmatore principiante che, dopo aver provato a gestire oltre 2000 righe di codice procedurale per PHP, ora ha scoperto il valore di OOP. Ho letto alcuni libri per aggiornarmi sulla teoria iniziale, ma vorrei qualche consiglio sull'applicazione pratica.
Quindi, per esempio, supponiamo che ci siano due tipi di oggetti di contenuto: un annuncio e un evento del calendario. la mia applicazione esegue la scansione di diversi siti Web (un elenco predefinito) e, quando trova un annuncio o un evento, estrae i dati e li salva in un database. Tutti i miei oggetti condivideranno un $ title e $ description. Tuttavia, l'oggetto pubblicitario avrà un prezzo $ e l'oggetto Event avrà $ startDate. Dovrei avere due classi separate, una per ogni oggetto? Dovrei avere una "superclasse" con $ title e $ description con due altre classi di annunci ed eventi con le loro proprietà? Quest'ultima è almeno la direzione in cui mi trovo ora.
La mia seconda domanda su questo disegno è come gestire la logica che estrae i dati per $ title, $ description, $ price e $ date. Per ogni sito web nel mio elenco predefinito, esiste un'espressione regolare specifica che restituisce il valore desiderato per ciascuna proprietà. Attualmente, ho una dichiarazione switch molto grande nel mio costruttore che determina quale sito Web sono proprietario, imposta le variabili regex di conseguenza e continua. Non solo, ma ora devo ripetere la logica per determinare quale sito sono nel costruttore di ogni classe. Questo non mi sembra giusto. Devo creare un altro Algoritmo di classe e memorizzare la logica lì per ogni sito? Le funzioni di gestire questa logica dovrebbero essere in questa classe? o specifico per le classi le cui proprietà hanno impostato?
Voglio prendere in considerazione nel mio progetto due cose: 1) Aggiungerò diversi oggetti di contenuto in futuro che condividono $ title e $ description, ma avranno le loro proprietà, quindi, voglio essere in grado di facilmente coltivali come necessario. 2) Aggiungerò costantemente più siti Web (ciascuno con i propri algoritmi per l'estrazione dei dati), quindi mi piacerebbe pianificare l'efficienza gestendo e lavorando con questi ora. Ho pensato di estendere la classe degli annunci o degli eventi con la classe "websiteX" e di memorizzare le sue funzioni lì. Ma questo non mi sembrava giusto ora che devo gestire centinaia di piccoli file di classe specifici per il sito web.
Nota, non sapevo se questo fosse il sito corretto o lo stackoverflow fosse la scelta migliore. Se è così, fammi sapere e io posterò lì.