Ciao a tutti e buon Natale!Memorizzazione dei dati in una classe statica [PHP]
Ho qualche problema con l'efficienza e spero che la community di StackOverflow possa aiutarmi.
In una delle mie classi (statiche), ho una funzione che preleva una grande quantità di informazioni dal mio database, analizza tali informazioni e le inserisce in un array formattato. Molte funzioni all'interno di questa classe si basano su tale array formattato e in tutta la classe, lo chiamo più volte, il che significa che l'applicazione passa attraverso questi processi più volte in una singola esecuzione, cosa che presumo non sia molto efficiente. Quindi mi chiedo se ci sia un modo più efficiente per farlo. C'è un modo per me di archiviare l'array formattato all'interno della funzione statica in modo che non debba ripetere l'intero processo ogni volta che ho bisogno di informazioni dall'array formattato?
private static function makeArray(){
// grab information from database and format array here
return $array;
}
public static function doSomething(){
$data = self::makeArray();
return $data->stuff;
}
public static function doSomethingElse(){
$data = self::makeArray();
return $data->stuff->moreStuff;
}
è il risultato di 'MakeArray()' sempre lo stesso su tutte le chiamate? In tal caso, è possibile memorizzarlo in una proprietà statica e restituirlo se già compilato. –
Se i dati nel database vengono aggiornati (il che non accade spesso e viene eseguito manualmente), cambierà il risultato di makeArray(), quindi il caching potrebbe essere una buona opzione. Come suggeriresti di andare sul caching di un simile risultato? – camrymps