Ho un baseClass dove non voglio i setter pubblici. Ho un metodo load($id) che recupererà i dati per quell'oggetto dal db.
Ho utilizzato metodi di classi statiche come getBy($property,$values) per restituire più oggetti di classe utilizzando una singola chiamata al database. Ma alcune persone dicono che i metodi statici non sono OOP.
Quindi ora sto provando a creare un baseClassCollection che possa fare la stessa cosa. Ma non può, perché non può accedere ai setter protetti. Non voglio che tutti siano in grado di impostare i dati dell'oggetto. Ma sembra che sia una proposta tutto o niente. Non posso dare solo l'accesso alla classe raccolta ai setter.
Ho visto una soluzione che utilizza debug_backtrace() , ma sembra inelegante. Mi sto avvicinando solo a rendere pubblici i setter.
Ci sono altre soluzioni? O dovrei anche cercare altre soluzioni?