php.de

Zurück   php.de > Webentwicklung > PHP-Fortgeschrittene

PHP-Fortgeschrittene Arbeiten mit PHP ohne Einschränkungen

Antwort
 
LinkBack Themen-Optionen Thema bewerten
Alt 30.03.2011, 21:33  
Benutzer
 
Registriert seit: 13.07.2005
Beiträge: 69
madhatter
Standard objekte am leben erhalten

moin moin,

habe schon google und das forum hier dazu befragt, aber leider nichts brauchbares gefunden... kann aber auch sein, dass mir das passende schlagwort fehlt.

ich möchte ein php objekt für viele seitenaufrufe verfügbar machen (auch für aufrufe verschiedener user) ohne es in db oder file persistent machen zu müssen.

soweit mir das bekannt ist, ist php alleine nicht dazu in der lage, da die objekte gelöscht werden sobald eine referenz darauf fehlt oder sobald der scope verlassen wird (was beim ende eines scripts der fall ist).

gibt es da eventuell eine möglichkeit über eine krücke oder ne art applicationserver zu lösen? habe leider auch bei zend nicht erfahren können ob der php applicationserver von zend dazu in der lage ist.

wäre toll, wenn mir jemand einen tipp geben könnte.
madhatter ist offline   Mit Zitat antworten
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 30.03.2011, 21:47  
Erfahrener Benutzer
 
Benutzerbild von Dark Guardian
 
Registriert seit: 10.10.2009
Beiträge: 2.631
PHP-Kenntnisse:
Fortgeschritten
Dark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekanntDark Guardian ist jedem bekannt
Standard

http://www.php.net/manual/de/function.apc-store.php
__________________
"Alles im Universum funktioniert, wenn du nur weißt wie du es anwenden musst".
Dark Guardian ist offline   Mit Zitat antworten
Alt 30.03.2011, 22:31  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Generell kannst du lauter Tools nutzen die dir die Möglichkeit geben Daten in einem Speicher (z.b. Arbeitsspeicher) auszulagern.

Memcache oder Xcache zum Beispiel. Dafür müssen die Objekte dann natürlich serialisiert werden.
Flor1an ist offline   Mit Zitat antworten
Alt 30.03.2011, 22:52  
Benutzer
 
Registriert seit: 13.07.2005
Beiträge: 69
madhatter
Standard

super! vielen dank. hab gleich apc installiert und getestet und es läuft super.

danke noch mal.

memcache und xcache schaue ich mir aber auch noch mal an. danke.
madhatter ist offline   Mit Zitat antworten
Alt 31.03.2011, 00:11  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Man kann sich mit APC auch spielend den Speicher vollmüllen bis der Apache-deamon stehenbleibt. Grad bei 5000+ Zugriffe auf ein Script das durch mehrere "Pages" / "Netzwerkweit" irgendwelche Objekte hangelt. APC ist mit bedacht zu handhaben. Generell das übergeben von Objekten sollte wohl überlegt sein, nicht immer ist es nötig (serialisierte) Objekte in anderen Scripten oder Recalls weiterzuverwenden, wenn die reinitialisierung des Objekts bzw. der Objekte keine nennenswerte Bedeutung hat oder wenig zur Performance-Reduktion beiträgt.
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 03.04.2011, 12:41  
Erfahrener Benutzer
 
Benutzerbild von splasch
 
Registriert seit: 05.01.2009
Beiträge: 474
PHP-Kenntnisse:
Fortgeschritten
splasch kann nur auf Besserung hoffen
Standard

Du kannst Objekte auch Speichern und bei bedarf einfach wieder reinladen.

Somit gehen die Objekte nicht verloren.(Session,Datenbank,Xml,File datei)

Ein File Beispiel findest hier:
http://www.dynamic-webpages.de/php/l...ialization.php

Geändert von splasch (03.04.2011 um 12:50 Uhr).
splasch ist offline   Mit Zitat antworten
Alt 03.04.2011, 13:02  
Erfahrener Benutzer
 
Benutzerbild von tr0y
 
Registriert seit: 26.07.2010
Beiträge: 4.874
PHP-Kenntnisse:
Fortgeschritten
tr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblicktr0y ist ein wunderbarer Anblick
tr0y eine Nachricht über MSN schicken
Standard

Zitat:
Zitat von splasch Beitrag anzeigen
Du kannst Objekte auch Speichern und bei bedarf einfach wieder reinladen.

Somit gehen die Objekte nicht verloren.(Session,Datenbank,Xml,File datei)

Ein File Beispiel findest hier:
http://www.dynamic-webpages.de/php/l...ialization.php
Mal abgesehen von Elementen des Typs Ressource, jo. ( Datenbank ) Wenn man etwas speichert / durchreicht, sollte die Entsprechende Klasse aus der das Objekt entstand auch festlegen was serialisiert wird und was passiert wenn die objekte wiederhergestellt werden ( de-serialisiert ).

__sleep() & __wakeup()

Im Falle einer Datenbank wären das halt die Daten die zum erneuten Verbindungsaufbau notwendig wären ( Verbindungsdaten ).
__________________
Lasse mir ohne Anwendung von Gewalt Dinge schenken, Amazon weiß darüber bald mehr.
tr0y ist offline   Mit Zitat antworten
Alt 05.04.2011, 12:04  
Erfahrener Benutzer
 
Benutzerbild von lstegelitz
 
Registriert seit: 07.09.2009
Beiträge: 4.005
PHP-Kenntnisse:
Fortgeschritten
lstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nettlstegelitz ist einfach richtig nett
Standard

Ein Script wird nach Beendigung aus dem Speicher entfernt, dabei werden auch alle offnen Handles geschlossen, dazu gehören Datenbank, offene Dateien, Sockets, etc.
Ein "Caching" dieser Elemente von PHP Seite aus funktioniert nicht, weil nicht gewährleistet ist, das die Resource überhaupt noch benötigt wird (Vorhaltezeit unendlich?). Ausserdem würde es Konsequenzen nach sich ziehen, würde man Verbindungen offen halten (Deadlocks, racing conditions z.B.).

Was in "Offline" Programmen ein Vorteil ist, verkehrt sich in der Onlinewelt ins Gegenteil.
__________________
Über 90% aller Gewaltverbrechen passieren innerhalb von 24 Stunden nach dem Konsum von Brot.
lstegelitz ist offline   Mit Zitat antworten
Alt 07.04.2011, 14:17  
Neuer Benutzer
 
Registriert seit: 07.04.2011
Beiträge: 22
PHP-Kenntnisse:
Fortgeschritten
ajmeht befindet sich auf einem aufstrebenden Ast
Standard

Eine Lösung die eventuell etwas überdimensioniert ist wäre Gearman.

Gearman selbst ist zwar grundsätzlich auf Asynchronität ausgelegt, das Ding kannst du jedoch auch synron laufen lassen. Die Frage hier ist dann natürlich in wie fern du dir hiermit unnötigen Overhead durch Gearman aufbirgst.

Was machen denn deine Objekte bei ihrer Instanziierung so besonderes, dass du diese vermeiden willst?
ajmeht ist offline   Mit Zitat antworten
Antwort


Themen-Optionen
Thema bewerten
Thema bewerten:

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wie ist das Leben als Freelancer ? dreamcatcher Off-Topic Diskussionen 5 24.02.2011 19:54
Objekte mit Attributen variabler Anzahl und variablen Typs speichern Bergtroll Datenbanken 9 29.01.2011 14:54
Objekte in Array speichern und diese Verwenden michi_pader PHP Einsteiger 6 12.12.2010 17:24
[Erledigt] Browsergame : Objekte auf einer Karte BlackScorp Software-Design 10 01.04.2010 09:59
Verschachtelte Objekte und Vererbung GELight PHP-Fortgeschrittene 1 11.12.2009 09:09
Was bringt OOP wenn Objekte nach jeder Seite sterben? majorbenks PHP Tipps 2009 9 18.11.2009 14:11
[Erledigt] Referenzen auf Objekte innerhalb eines Arrays PHP-Fortgeschrittene 6 31.08.2009 17:06
[Erledigt] Wo liegen bei OOP die Objekte? Jafix PHP Tipps 2009 2 12.06.2009 18:14
[Erledigt] Objekte übergeben Felix PHP Tipps 2008 23 18.06.2008 12:21
Objekte zur Laufzeit Vererbung anhängen Zergling-new PHP-Fortgeschrittene 8 17.11.2007 17:31
[Erledigt] Objekte vergleichen PHP-Fortgeschrittene 4 08.12.2005 16:20
[Erledigt] Zeilenumbruch bleibt erhalten - trotz entfernen? PHP Tipps 2005-2 3 16.10.2005 02:22
Ganze Objekte an Script weitergeben dreamingof8a PHP Tipps 2004-2 6 23.11.2004 12:17
[Erledigt] Referenzen auf Objekte PHP-Fortgeschrittene 2 17.08.2004 11:08
Anonyme Objekte? PHP-Fortgeschrittene 18 25.07.2004 22:19

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
php objekt erhalten, php objekt seitenaufruf, php objekte erhalten, php object erhalten bleiben, php wie lange belibt ein object erhalten, alle objekte behalten php, objekte löschen php, php objekt user geht verloren, daten über objekt erhalten php5, php objekte am leben, php objekte am leben halten, php objekt in session am leben erhalten, php objecte am leben halten, browsergame karte als objekt, php objekte leben lasen auf dem server, php objekte soeichern, objekt für leben, speichern von objekte php5, objekte zum leben, php wie lange leben objekte

Alle Zeitangaben in WEZ +2. Es ist jetzt 01:32 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum