[PHP 5] Vestäntnisproblem OOP

AndreBrueck

Mitglied
Hallo,

Ich habe einige Verständnisprobleme im Umgang mit OOP.

Ich wollte mir in PHP5 eine Klasse zur Userauthentifizirung schreiben. Nun frag ich mich, ob ich die einzelnen Methoden darin als static deklarieren muss oder nicht.

Ich brauche ja keine verschiedene Objekte der selben klasse. Aber wie sieht das bei statik mit verschiedenen Benutzern, sind die dann dennoch voneinander getrennt. Oder kann dann eine statische methothe isLogin() von allen benutzern gleichermassen aufgerufen werden.

Und wie ist die Lebenszeit eines Objektes. Muss ich dass auf jeder seite neu erzeugen, oder kann man die Referenz darauf zum Beispiel einer Session mit übergeben.

Hoffe ich konnte mich verständlich ausdrücken.

Dnke schoneinmal im Vorraus für eure Antworten.

Gruß
André
 
Wenn es von der Klasse nur eine Instanz pro laufendem Skript geben soll, empfehle ich die Implementierung als Singleton.
Damit hättest Du eine statische Methode, nämlich die, die Dir die einzige Instanz der Klasse zurückgibt. Die Klasse initialisiert diese Instanz selber. Du bist also auf der sicheren Seite, dass das Objekt initialisiert ist bzw. wird, wenn Du darauf zugreifen willst.

Gruß hpvw
 
Hi,

nun eine Instanz pro skript währe ja in meinem Fall falsch oder?

Wenn sich nun ein User X am Sytem Authentifiziert, kann ein anderer User Y diese Authentifizierung mitnutzen. Oder hab ich da irgendwie ein Denkfehler?
 
Ja, ich denke Du hast da einen Denkfehler.
Vielleicht habe ich mich auch unklar ausgedrückt.
Jeder Request eines Users sorgt dafür, dass ein Skript ausgeführt wird.
Wird durch verschiedene Requests das selbe Skript aufgerufen, weiß die ausgeführte eine Instanz nichts von der anderen.
Ich glaube, ich rede mich gerade um Kopf und Kragen, hoffentlich weißt Du, was ich meine.

Noch ein Versuch konkret zu werden:
Es handelt sich nicht um eine Instanz pro Skript, sondern um eine Instanz pro Request.

Gruß hpvw
 
Danke, dachte das das Skript dann für alle User nur einmal aufgerufen wird. Wenn das wie du sagst pro Instanz geschieht, sollte es so funktionieren.

Werde nun mal schauen, ob ich mit diesen Singleton klar komme.

Danke für deine schnelle Antwort jedenfalls.

Gruß
André
 
Zurück