PHP-Äquivalent von ASP.NET Application / Cache-Objekten

8

Mein Google-Fu hat nicht offenbart, wonach ich suche, also bringe ich dieses in die Menge.

Da ich aus einem ASP.NET-Entwicklungshintergrund komme, bin ich es gewohnt, dass die Sammlungen Application und Cache für mich verfügbar sind, um selten geänderte, aber häufig verwendete Ressourcen (z. B. Suchzeilen aus einer Datenbank oder der Inhalt von statischen XML-Dokumenten) im Speicher des Webservers, so dass ich diese oft verwendeten Elemente nicht bei jeder Anfrage neu laden muss.

Hat PHP ein Äquivalent? Ich habe kurz über die Memcache-Erweiterung gelesen, aber das funktioniert nicht für mich (da ich keine Kontrolle über die Server-Konfiguration habe.) Ich bin versucht, etwas zu implementieren, das mir erlauben würde, Pre-Parse oder Pre - Selektiere die Ressourcen und erzeuge eine Art PHP-Cache- "Datei", die das zwischengespeicherte Objekt aus den in der Datei gespeicherten Literalen konstruiert, aber das scheint mir eine sehr hacky Lösung zu sein.

Gibt es etwas in PHP (oder alternativ in einer Hilfsbibliothek), die es mir erlaubt, dies mit Best Practices zu erreichen?

    
Adam Maras 16.11.2009, 05:10
quelle

2 Antworten

5

Kurz gesagt, nein, so etwas gibt es nativ in PHP nicht. Um zu verstehen, warum, müssen Sie verstehen, dass PHP seine gesamte Umgebung für jede Anfrage erstellt hat, und sie wird anschließend am Ende der Anfrage abgerissen. PHP tut Ihnen $ _SESSION zum Speichern pro Session-Variablen, aber nach dem Durchsuchen der Dokumente sehen Sie, dass diese Variable auch bei jeder Anfrage erstellt wird. PHP (oder mod php, um genauer zu sein) unterscheidet sich grundlegend von anderen "Anwendungsservern". Im Grunde ist es kein Anwendungsserver. Es ist ein Skript-Runner pro Anfrage.

Verstehen Sie mich nicht falsch, PHP ermöglicht Ihnen, Datenspeicher auf Anwendungsebene zu verwenden, aber Sie müssen zu einer Datenbank oder zu einer Festplatte gehen, um sie zu bekommen. Denken Sie daran, aber machen Sie sich keine Sorgen um die Optimierung der Leistung, bis gezeigt wird, dass die Leistung ein Problem darstellt. Und ich denke, dass 99 mal von 100, wenn Performance ein Problem ist, das nicht auf schlechtem Code zurückzuführen ist, den Sie geschrieben haben, werden Sie die Ressourcen haben, Ihren eigenen hübschen kleinen memcached Server zu bauen.

    
Zak 16.11.2009, 05:28
quelle
0

Sieh dir zum Beispiel die Zend_Cache-Bibliothek an. Es kann in mehreren Backends zwischengespeichert werden.

    
Valentin Golev 16.11.2009 05:18
quelle

Tags und Links