Ho una classe User
che deve caricare i dati da una varietà di fonti, ad es. il database utente principale, i metadati utente WordPress, le autorizzazioni da un'altra app, ecc. Per motivi di organizzazione, voglio separare i diversi caricatori di dati nelle proprie classi. Le chiamate a $user->get_name()
potrebbero delegare correttamente a qualsiasi oggetto back-end fornisca queste informazioni.
Come potrebbe questo aspetto in PHP? C'è un nome per questo modello? (E si spera che non sia un anti-pattern.)
Posso anticipare le persone che suggeriscono alcuni oggetti incorporati, come $user->wordpress
come interfaccia per il caricatore di WordPress. Ho un ulteriore fattore di complicazione, che non tutti gli utenti sono presenti in tutti i nostri archivi di dati. I miei programmi di caricamento sono in grado di identificare se comprendono e hanno dati per un determinato nome utente / id e vengono caricati nell'oggetto User
con un livello di priorità. Un determinato identificatore può solo attivare un sottoinsieme di caricatori di dati, quindi $user->get_name()
è essenzialmente un'interfaccia coerente con i dati utente, ovunque sia memorizzata.
Sto valutando la mia configurazione nel tentativo di rendere le cose più testabili, e credo che questo sia un primo passo appropriato.