Mi chiedevo come saresti in grado di mappare i seguenti criteri a modelli di progettazione comuni. Uso PHP 5.3 e MySQL 5.5 e ho il mio framework mvc per la mia azienda, ma alcune parti potrebbero essere migliori e qui ci sono i requisiti:
(Prendi il concetto di un catalogo dato che è la prima app ad essere interessata nel nostro pool di applicazioni)
I controllori (prodotti, clienti e carrello) gestiscono tutte informazioni diverse, vale a dire il proprio insieme di modelli. Ad esempio, il carrello creerà oggetti cestino in memoria, assegnerà prodotti ad esso, quantità, ecc. Quindi salverà il cestino nel database e proverà la logica di pagamento e salverà il pagamento associato al carrello.
Il mio problema è che la maggior parte delle volte i nostri clienti desiderano personalizzare i diversi oggetti come il client (aggiungere più campi di coordinate o campi descrittivi) o il prodotto (aggiungere proprietà personalizzate al prodotto). Se il mio controller fa sempre riferimento al prodotto della classe, ma voglio estenderlo per creare:
MyCompany_Models_Product
MyClient_Models_Product extends MyCompany_Models_Product
Come installerò il mio sistema per supportare l'estensione delle classi e cambiare le classi usate dai miei diversi moduli, controller, viste e altri modelli. Se ho hardcode MyCompany_Models_Product come nome della classe nel controller e in tutti gli altri oggetti, come potrei fare per creare un sistema sovrascrivibile.
C'è qualche motivo per cui posso sfruttare questo problema?