online 1
gast (50)

/ Forum / Skripte(PHP,ASP,Perl...)

Skripte(PHP,ASP,Perl...)Skripte(PHP,ASP,Perl...)

Fragevon Dr.Ma-Busen vom 31.07.2019, 13:11 Options

Gibt es in PHP so etwas wie das scope attribut bei JSP?

Moin!

Wie schon im Subject gefragt, gibt es für PHP so etwas wie das Attribut scope bei JSP?

Also wenn ich eine PHP-Seite aufrufe, dass dann einen Instanz gestartet wird und die Instanz für die Dauer eine Session erhalten bleibt, so dass wenn ich ein 2. mal auf die Seite zugreife meine anfrage von der selben Instanz bearbeitet wird wie von der zuvor?


Falls ihr nicht genau wisst was ich meinen, hier mal eine kleine Beschreibung:
http://www.jsptutorial.org/content/beans#innerLink3
oder
http://de.wikipedia.org/wiki/JavaServer_Pages dort mal suchen nach: jsp:useBean



MfG


Antwort schreiben

Antwort 1 von son_quatsch vom 31.07.2019, 13:36 Options

Während einer Session, die logischerweise über mehrere Seiten hinweg dieselbe bleibt, steht einem das globale Array $_SESSION zur Verfügung, dem Du ebenfalls alles mögliche anhängen kannst (z.B. weitere Arrays). Kann man zwar nicht als Instanz bezeichnen, eignet sich aber genauso für z.B. Warenkörbe.

Wolltest Du das wissen? Ansonsten schilder ein konkretes Problem / Beispiel :-)

Antwort 2 von Dr.Ma-Busen vom 31.07.2019, 15:16 Options

Ja, sowas wollte ich im grunde wissen.

Aber gibt es auch in PHP sowas wie bei JSP das attribut scope?

Also es PHP-Seite auf und die wird ausgeführt, nach dem abarbeiten und den Senden der Daten an den Browser bleibt die instanz aber erhalt und bei einen erneuten aufruf dieses PHP-Scriptes wird eine Methode/Funktion in der Instanz aufgerufen die dann die Anfrage bearbeitet.


Mal ein Beispiel. In JSP könnte ich einen Chat erstellen der wie folgt funktioniert.
Beim aufruf des Chat wird, wenn noch keinen Instanz der Datei läuft, eine Instanz erstellt. Die bearbeitet die Anfrage von User_A dann. Nach dem die Daten zum Browser gesendet wurden wird die Instanz aber nicht beendet sondern läuft weiter. Ruft jetzt einen andere Person, User_B, den Chat auf, dann wird seine anfrage von der selben Instanz bearbeitet wie von User_A. So bestände die Möglichkeit das ich den gesammten Chattext im speicher des Server halten könnte und müsste ihn nicht in einer Datei oder Datenbank speichern. Neben bei kann die Instanz dann noch weiter aufgaben erledigen z.B. Statistiken erstellen und hätt dann auch die möglichkeit diese Nebenläufigkeiten zu kontrolieren. Wenn der Chat z.B. stark besucht ist kann das erstellen der Statistik auf eis gelegt werden, bis die Userzahl des Chat wieder so weit gesunken ist das die Nebenläufigkeit den eigentlichen Betrieb nicht stören kann.

Ist sowas oder sowas ähnliches in PHP auch möglich?


MfG

Antwort 3 von son_quatsch vom 31.07.2019, 15:57 Options

Also die Gültigkeit einer Variable über die Lebensdauer des aktuellen Skriptes hinaus? Nicht dass ich wüsste... Statische Sachen kannst Du halt alle in besagtes Feld packen, nicht aber ein komplettes Objekt. Bin allerdings nicht sicher, ob nicht PHP5 solche eine Funktionalität mit sich bringt...

Antwort 4 von Dr.Ma-Busen vom 02.08.2019, 14:29 Options

Ok, damit ist meine Frage wohl beantwortet.

Jetzt habe ich aber noch eine kleinen andere frage bzg. Datenbanken.
Ist es möglich einen Datenbankverbindung über eine Session lang zu halten, oder muss jedes mal wenn ich ein PHP-Script aufrufe einen neue Verbindung zur Datenbank aufgebaut werden?

MfG

Antwort 5 von son_quatsch vom 02.08.2019, 15:43 Options

Datenbankverbindungen werden nach meinem Kenntnisstand bei Skriptende grundsätzlich geschlossen - also gilt hier dasselbe. Allerdings habe ich noch nie versucht, eine Datenbankverbindung zu öffnen, das Handle dazu weiterzuverschicken und später darauf zuzugreifen. Ist in meinen Augen auch irgendwo tödlich, denn dann wird eine Verbindung immer nur durch ein Timeout beendet. Das hat gute DoS-Chancen...

Allerdings: worin besteht groß die Notwenigkeit? Wie das PHP resourcenmäßig intern alles regelt weiß ich selber nicht, aber das ganze klappt auf jeden Fall schnell genug.

Antwort 6 von Supermax vom 02.08.2019, 15:59 Options

Die Datenbank-Interfaces von PHP (zumindest für mySQL und PostgreSQL) bieten die Option, "persistent connections" zu öffnen. Dabei wird eine einmal geöffnete Datenbankverbindung beim Scriptende nicht geschlossen, sondern offen gehalten und in einem internen Pool verwaltet und kann vom nächsten Script (oder vom gleichen das erneut aufgerufen wird) wieder verwendet werden.

Das bringt einen kleinen Performancegewinn, weil die Handshakephase zwischen Server und Client, wo u.A. Protokollversion, Verschlüsselung, Zeichencodierung etc. ausgehandelt werden, pro Verbindung nur einmal durchgeführt werden muß.

Antwort 7 von Dr.Ma-Busen vom 02.08.2019, 16:30 Options

Ok, ich glaube da sind meinen Fragen vorerst beantwortet.

MfG

--
PS: Falls ihr euch fragt warum ich hier sollche netten Fargen stelle: Ich bin nur auf der such nach ein paar argumenten, falls mich der Dozent fragt, warum ich meine Projekt in JSP geschrieben habe und nicht in PHP. :)

Antwort 8 von son_quatsch vom 02.08.2019, 19:36 Options

Verräter ;-)

Aber Chats über den Browser finde ich sowieso am Thema vorbei. Jetzt interessiert mich höchstens, inwieweit Perl sich solche Ansprüche realisieren lassen...

Ähnliche Themen

Problem mit PhP
Firefighter-nb  16.04.2007 - 150 Hits - 1 Antwort

Daten auslesen von MySQL DB
brshna  17.06.2007 - 104 Hits - 1 Antwort

Kostenloses Programm zum Öffnen von JSP-Dateien
paeff0582  26.06.2007 - 358 Hits - 9 Antworten

2 sql tablellen vergleichen
micky01  16.03.2008 - 23 Hits - 7 Antworten

Hinweis

Diese Frage ist schon etwas älter, Sie können daher nicht mehr auf sie antworten. Sollte Ihre Frage noch nicht gelöst sein, stellen Sie einfach eine neue Frage im Forum..

Neue Einträge

Version: supportware 1.9.150 / 10.06.2022, Startzeit:Mon Jan 26 11:26:25 2026