Hallo allerseits und Frohe Weihnachten!Speichern von Daten in einer statischen Klasse [PHP]
Ich habe Probleme mit der Effizienz und ich hoffe, dass die StackOverflow-Community mir helfen kann.
In einer meiner (statischen) Klassen habe ich eine Funktion, die eine große Menge an Informationen aus meiner Datenbank nimmt, analysiert diese Informationen und legt sie in ein formatiertes Array. Viele Funktionen innerhalb dieser Klasse beruhen auf diesem formatierten Array und in der gesamten Klasse rufe ich sie mehrmals auf, was bedeutet, dass die Anwendung diese Prozesse mehrere Male in einem einzigen Durchlauf durchläuft, was ich für nicht sehr effizient halte. Ich frage mich, ob es einen effizienteren Weg gibt, dies zu tun. Gibt es eine Möglichkeit für mich, das formatierte Array in der statischen Funktion zu speichern, so dass ich nicht jedes Mal den gesamten Prozess erneut durchführen muss, wenn ich Informationen aus dem formatierten Array benötige?
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;
}
Ist das Ergebnis 'Makearray()' immer das gleiche auf jeder anrufen? Wenn dies der Fall ist, können Sie es in einer statischen Eigenschaft zwischenspeichern und das Ergebnis zurückgeben, wenn es bereits ausgefüllt ist. –
Wenn die Daten in der Datenbank aktualisiert werden (was nicht oft vorkommt und manuell durchgeführt wird), wird das Ergebnis von makeArray() geändert, so dass das Zwischenspeichern eine gute Option darstellt. Wie würden Sie vorschlagen, dass ich so ein Ergebnis cache? – camrymps