Ich möchte ein bestimmtes Objekt 'statisch' zwischen verschiedenen Läufen des PHP-Skript, um die Leistung meiner Skripte zu optimieren und vermeiden Sie die Initialisierung Hit, die schwer ist. Gibt es eine Möglichkeit, dies zu tun?PHP-Objekt remanent zwischen Script-Lauf
Antwort
Sie können es in die Sitzung des Benutzers setzen. Stellen Sie sicher, obwohl, dass die Klasse vor session_start deklariert wird():
require 'heavy_class.php';
session_start();
$_SESSION['heavy'] = new HeavyClass;
Serialize das Objekt und speichern Sie es in Sitzung :). Um es wieder zu verwenden, verwenden Sie unseren Benutzer.
Sie können das Objekt serialisieren und dann entweder in einer lokalen Datei oder in einer Datenbank speichern. Dies geschieht am besten mit der php-Funktion
Sie verwenden dann unserialize()
, um das Objekt wiederherzustellen.
Es gibt einige "gotchas", so dass die Klasse des Objekts für das ausführende Skript verfügbar sein muss.
Dies ruft die magischen Methoden auf dem Objekt auf, das serialisiert wird __sleep()
und __wakeup
, wenn es serialisiert bzw. unserialisiert ist. Bei diesen Methoden sollte eine Datenbankinitialisierung stattfinden.
Link zu dem php docs: http://php.net/manual/en/function.serialize.php
+1, so dass ich alle Sitzungslösungen gleichzeitig ansprechen konnte: Die Sitzung erstellt LESS-Objekte, aber kein EINZIGES Objekt. Wenn das Ziel darin besteht, ein einzelnes Objekt zu haben, müssen Sie etwas anderes tun. Da die Sitzung benutzerspezifisch ist. – DampeS8N
Haften Sie es in einer Sitzung, es es für Sie automatisch serialisiert werden. Sie können die magischen Methoden __wakeup und __sleep verwenden, um Datenbankverbindungen und ähnliches zu handhaben, aber Sie können Datenträgertreffer vermeiden.
- 1. Unterschied zwischen -Wconversion zwischen gcc und g ++
- 2. Excel wenn A1 = zwischen 17 bis 20.4 und B1 = zwischen
- 3. Berechne No.Days zwischen zwei Daten, die zwischen zwei Tagen ist
- 4. Unterschied zwischen Super pom die Abhängigkeit zwischen zwei Projekten mit
- 5. Entfernen von Leerzeichen zwischen Buchstaben und doppelten Leerzeichen zwischen Wörtern
- 6. SQL - Ermitteln des Datumsunterschieds zwischen zwei Zeilen zwischen drei Tabellen
- 7. Bewegen zwischen 4 Tasten und haben Rollover geklickt zwischen
- 8. Eine Zeichenfolge zwischen den Sockets zwischen den Bytes senden
- 9. Unterschiedliche Zufallszahlengenerierung zwischen OS
- 10. Abstand zwischen den Spalten
- 11. Socket-Übergabe zwischen Prozessen
- 12. Scaling socket.io zwischen Servern
- 13. berechnen Unterschiede zwischen Feldelementen
- 14. regex finden Zeichen zwischen „“
- 15. Unterschied zwischen Android Begriffen?
- 16. Performance-Problem zwischen Builds
- 17. Unterschied zwischen Vorzeichen & und *?
- 18. Mehrere Operatoren zwischen Operanden
- 19. RedirectToAction zwischen Bereichen?
- 20. Kommunikation zwischen Prozessen
- 21. Ähnlichkeit zwischen Farben
- 22. Wechsel zwischen MySQL-Datenbanken
- 23. Vererbung zwischen edmx-Dateien
- 24. Sharing Cursor zwischen Aktivitäten
- 25. Korrelationskoeffizient zwischen den Zellen
- 26. Vergleich zwischen Zeigern
- 27. Pause zwischen Keyframe-Animationen
- 28. Raum zwischen Grid Artikel
- 29. Skalierung zwischen zwei Zahlenbereichen
- 30. Unterscheidung zwischen Ausführungssteuerpfade
Warum nicht den Cache verwenden? ACP könnte nützlich sein. – joksnet
ACP ???? Hilf mir. – millebii
https://encrypted.google.com/search?hl=de&q=php+apc erster Treffer (oder dritter für Wikipedia). –