meine Singleton-Klasse wird immer neu instanziiert

meine Singleton-Klasse wird immer neu instanziiert

am 05.10.2006 18:19:46 von Gilbert Mirenque

Hallo NG,
ich habe mich heute belesen und einige Singleton-Implementierungen für
PHP ausprobiert aber ich bekomme es nicht hin, dass immer nur auf ein
und dieselbe Instanz zugegriffen wird.
Kurz zum Aufruf:
in einer index.php wird die Datei mit der Singleton-Klasse inkludiert.
in einer anderen Datei wird dann die Instanz geholt - und zwar so:

$logger = Logger::getInstance(ein_paar_parameter);

an der Stelle hab ich es auch schon mit =& versucht, jedoch auch kein
Erfolg.

meine Singleton-Klasse sieht so aus:

class Logger{
private static $logger_instance = NULL;

private function Logger(ein_paar_parameter){
//Initialisierungen werden vorgenommen
}

public static function getInstance(ein_paar_parameter){
if(self::$logger_instance === NULL){
self::$logger_instance = new Logger(ein_paar_parameter);
echo "instanziiert";
}
return self::$logger_instance;
}

private final function __clone(){}
}

?>

und wie gesagt wird bei jedem Aufruf eine neue Instanz erstellt und
nicht auf die alte zugegriffen. Wo liegt mein Fehler? Könnt ihr mir helfen?

Gruß
G.M.

Re: meine Singleton-Klasse wird immer neu instanziiert

am 05.10.2006 19:45:20 von dafox

Gilbert Mirenque schrieb:

> ich habe mich heute belesen und einige Singleton-Implementierungen für
> PHP ausprobiert aber ich bekomme es nicht hin, dass immer nur auf ein
> und dieselbe Instanz zugegriffen wird.

> > class Logger{
> private static $logger_instance = NULL;
>
> private function Logger(ein_paar_parameter){
> //Initialisierungen werden vorgenommen
> }
>
> public static function getInstance(ein_paar_parameter){
> if(self::$logger_instance === NULL){
> self::$logger_instance = new Logger(ein_paar_parameter);
> echo "instanziiert";
> }
> return self::$logger_instance;
> }
>
> private final function __clone(){}
> }
>
> ?>

> und wie gesagt wird bei jedem Aufruf eine neue Instanz erstellt und
> nicht auf die alte zugegriffen. Wo liegt mein Fehler? Könnt ihr mir helfen?

Kann ich nicht nachvollziehen. Deine Konstruktion funktioniert hier (PHP
5.0.2, Apache-Modul) wie erwartet.

Re: meine Singleton-Klasse wird immer neu instanziiert

am 05.10.2006 20:25:56 von Ulf Kadner

Gilbert Mirenque wrote:

> $logger = Logger::getInstance(ein_paar_parameter);

Dazu muss erstmal was gesagt werden. Es ist meiner meinung nach wenig
sinvoll und auch nicht im sinne des Singleton-Pattern, wenn Du an dessen
Initial-Methode Parameter übergibst! Die notwendigen Parameter sollten
immer über nicht statische öffentliche Methoden eine bestehenden Instanz
gesetzt werden!

also z.B.: Logger::getInstance()->setParam('key', 'value');

> an der Stelle hab ich es auch schon mit =& versucht, jedoch auch kein
> Erfolg.

Warum willst Du das denn noch mal in ne extra variable schreiben? Dazu
brauchste wirklich kein Singleton. Steht doch schon in
Logger::$logger_instance

> class Logger{
> private static $logger_instance = NULL;
>
> private function Logger(ein_paar_parameter){
> //Initialisierungen werden vorgenommen
> }
>
> public static function getInstance(ein_paar_parameter){
> if(self::$logger_instance === NULL){
> self::$logger_instance = new Logger(ein_paar_parameter);
> echo "instanziiert";
> }
> return self::$logger_instance;
> }
>
> private final function __clone(){}
> }

> und wie gesagt wird bei jedem Aufruf eine neue Instanz erstellt und
> nicht auf die alte zugegriffen. Wo liegt mein Fehler? Könnt ihr mir helfen?

Ist hier nicht nachvollziehbar 5.1.6 und 5.1.5 macht was Du verlangst.

MfG, Ulf

Re: meine Singleton-Klasse wird immer neu instanziiert

am 05.10.2006 20:37:07 von Gilbert Mirenque

hmm...wirklich komische Sache. Ich will halt jeden click, jedoch wird
immer "instanziiert" per echo ausgegeben. Heißt ja, dass immer ein neues
Objekt erstellt wird. OK - ich lass das für heute und schau es mir
morgen nochmal an. Manchmal hilft es ja auch mal drüber zu schlafen ;)
Aber danke, dass ihr es getestet habt.

Gruß
G.M.

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 09:26:51 von Tobias Kutzler

Gilbert Mirenque schrieb:
> hmm...wirklich komische Sache. Ich will halt jeden click, jedoch wird
> immer "instanziiert" per echo ausgegeben. Heißt ja, dass immer ein neues
> Objekt erstellt wird. OK - ich lass das für heute und schau es mir
> morgen nochmal an. Manchmal hilft es ja auch mal drüber zu schlafen ;)
> Aber danke, dass ihr es getestet habt.
>

Mir ist etwas aufgefallen ("...Ich will halt jeden Klick..."):
Möchtest Du das Singleton nur innerhalb eines Skriptaufrufs oder über
mehrere "behalten"? Wenn zweitens, dann musst Du Deine Instanz in eine
Session packen. Andernfalls ist die Instanz immer weg. Sie wird nur
innerhalb eines Skriptablaufs existieren.

z.B.:
class Logger{
private static $logger_instance = NULL;

private function Logger() {
//Initialisierungen werden vorgenommen
}

public static function getInstance() {
if($_SESSION['Logger'] === NULL){
$_SESSION['Logger'] =& new Logger();
echo "instanziiert";
}
return $_SESSION['Logger'];
}

private final function __clone() {}
}

HTH,
Tobias

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 09:51:19 von Rainer Hinz

Ulf Kadner wrote:
> Gilbert Mirenque wrote:
>=20
>> $logger =3D Logger::getInstance(ein_paar_parameter);
>=20
>=20
> Dazu muss erstmal was gesagt werden. Es ist meiner meinung nach wenig=20
> sinvoll und auch nicht im sinne des Singleton-Pattern, wenn Du an desse=
n=20
> Initial-Methode Parameter übergibst! Die notwendigen Parameter sollte=
n=20
> immer über nicht statische öffentliche Methoden eine bestehenden In=
stanz=20
> gesetzt werden!
>=20
> also z.B.: Logger::getInstance()->setParam('key', 'value');

Welchen Konkreten Grund gibt es für diesen Umstand? Das andere=20
funktioniert doch auch.

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 11:24:17 von Knut Kohl

Hallo Anni,

Anni Schmidt schrieb am 06. Oct 2006 in de.comp.lang.php.misc:

> Ulf Kadner wrote:
>> Gilbert Mirenque wrote:
>>
>>> $logger = Logger::getInstance(ein_paar_parameter);
>>
>>
>> Dazu muss erstmal was gesagt werden. Es ist meiner meinung nach wenig
>> sinvoll und auch nicht im sinne des Singleton-Pattern, wenn Du an dessen
>> Initial-Methode Parameter übergibst! Die notwendigen Parameter sollten
>> immer über nicht statische öffentliche Methoden eine bestehenden Instanz
>> gesetzt werden!
>>
>> also z.B.: Logger::getInstance()->setParam('key', 'value');

> Welchen Konkreten Grund gibt es für diesen Umstand? Das andere
> funktioniert doch auch.

Na ja, wenn das Singleton existiert und NICHT neu instanziert wird,
werden die "ein_paar_paramter" auch NICHT verarbeitet!

Knut

--

Newsoffice.de - Die Onlinesoftware zum Lesen und Schreiben im Usenet

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 13:09:22 von Michael Jostmeyer

Tobias Kutzler schrieb:
> Gilbert Mirenque schrieb:
>> hmm...wirklich komische Sache. Ich will halt jeden click, jedoch wird
>> immer "instanziiert" per echo ausgegeben. Heißt ja, dass immer ein neues
>> Objekt erstellt wird. OK - ich lass das für heute und schau es mir
>> morgen nochmal an. Manchmal hilft es ja auch mal drüber zu schlafen ;)
>> Aber danke, dass ihr es getestet habt.
>>
>
> Mir ist etwas aufgefallen ("...Ich will halt jeden Klick..."):
> Möchtest Du das Singleton nur innerhalb eines Skriptaufrufs oder über
> mehrere "behalten"? Wenn zweitens, dann musst Du Deine Instanz in eine
> Session packen. Andernfalls ist die Instanz immer weg. Sie wird nur
> innerhalb eines Skriptablaufs existieren.
Komisch, genau das habe ich bei diesem Satz auch gedacht...
Wäre aber schön, wenn sowas mit einem anderen Server machbar wäre.
Hab da mal was gelesen über einen experimentellen AppServer, der das
angeblich können soll. Hat hier jemand dazu weitere Informationen oder
sowas schon mal eingesetzt?

Gruss Josi

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 13:29:17 von Gilbert Mirenque

Tobias Kutzler wrote:
> Mir ist etwas aufgefallen ("...Ich will halt jeden Klick..."):
> Möchtest Du das Singleton nur innerhalb eines Skriptaufrufs oder über
> mehrere "behalten"? Wenn zweitens, dann musst Du Deine Instanz in eine
> Session packen. Andernfalls ist die Instanz immer weg. Sie wird nur
> innerhalb eines Skriptablaufs existieren.

OK danke für diesen Tipp. Daran hat es gelegen, dass der Logger immer
neu instanziiert wird. Doch jetzt stehe ich vor einem nächsten Problem.
Und zwar werden im Laufe der Zeit verschiedene Instanz-Variablen meiner
Singleton-Klasse geändert oder initialisiert. Wenn ich versuche auf
diese über die Session zuzugreifen sind sie immer NULL. Heißt das, dass
ich die Variablen auch noch in die Session schreiben muss? Dann ist es
ja eigentlich überflüssig die Logger-Instanz der Session bekannt zu
machen, wenn ich sowieso jede einzelne nötige Variable auch bekannt
machen muss.

Gruß
G.M.

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 15:39:04 von Alex Hepp

Gilbert Mirenque schrieb:
> OK danke für diesen Tipp. Daran hat es gelegen, dass der Logger immer
> neu instanziiert wird. Doch jetzt stehe ich vor einem nächsten Problem.
> Und zwar werden im Laufe der Zeit verschiedene Instanz-Variablen meiner
> Singleton-Klasse geändert oder initialisiert. Wenn ich versuche auf
> diese über die Session zuzugreifen sind sie immer NULL. Heißt das, dass
> ich die Variablen auch noch in die Session schreiben muss? Dann ist es
> ja eigentlich überflüssig die Logger-Instanz der Session bekannt zu
> machen, wenn ich sowieso jede einzelne nötige Variable auch bekannt
> machen muss.

Ich muss zwar gestehen, dass ich bisher noch nicht in der Lage war, php5
anzutesten, aber unter php4 habe ich in diesen Fällen, wenn ich die
Sessionvariable immer auf dem Stand der im Skript verwendeten Instanz
haben wollte, mit einer Referenz gearbeitet, sprich nachdem die Session
wiederhergestellt ist, mache ich folgendes:

$myLoggerInstance = &$_SESSION['logger'];

Wenn Du nun Veränderungen an der instanz, sprich über $myLoggerInstance
vornimmst, werden diese quasi automatisch in die Session reflektiert.

Allerdings macht in diesem Fall (wenn die Instanz aus der Session
wiederhergestellt wird), der Singleton irgendwie imho keinen Sinn, oder
übersehe ich da etwas?

Gruß Alex

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 15:44:19 von dafox

Michael Jostmeyer schrieb:
> Tobias Kutzler schrieb:

>> Möchtest Du das Singleton nur innerhalb eines Skriptaufrufs oder über
>> mehrere "behalten"? Wenn zweitens, dann musst Du Deine Instanz in eine
>> Session packen. Andernfalls ist die Instanz immer weg. Sie wird nur
>> innerhalb eines Skriptablaufs existieren.

> Wäre aber schön, wenn sowas mit einem anderen Server machbar wäre.

Ist es doch: OC4J, Tomcat, etc. Und dank JSR 233 kann man in diesem
Umfeld sogar PHP-Anwendungen ausführen.

> Hab da mal was gelesen über einen experimentellen AppServer, der das
> angeblich können soll. Hat hier jemand dazu weitere Informationen oder
> sowas schon mal eingesetzt?

Weiss net, meinst du diese "Script Running Machine"? Wenn ich das
richtig sehe, dann ist das Projekt seit 2004 tot.

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 16:46:19 von Gilbert Mirenque

OK - bin jetzt wieder ein wenig weiter. Danke dir.
Und wie nicht anders zu erwarten war, stehe ich nun vor einem anderen
Problem, was ich mir überhaupt nicht erklären kann.

Hier der Code zum Aufruf:

if($_SESSION['Logger'] === NULL){
$logger = new
Logger('localhost','vintage','styte_sys_logging','web','web' ,'ID');
echo 'neue instanz';
} else {
echo 'alte instanz';
}
echo 'vor log';
$logger->log($_REQUEST[session_name()],$moduleName,$pageTitl e);
echo 'nach log';

Hier nun der Code meiner Methode "log":

public function log($sessionID,$action,$data){
echo 'logging';
if($this->loggingAllowed){
$sql = "INSERT INTO ".$this->table." VALUES(NULL,'";
$sql .= $sessionID."',NOW(),'";

$sql .= $this->parent_id;

$sql .= "','".$action."','".$data."')";
echo $sql;
echo $this->parent_id;

$result = mysql_query($sql,$this->connection);
var_dump($result);
echo "
";
$this->parent_id = mysql_insert_id($this->connection);
echo $this->parent_id;
} else {
echo 'logging verboten';
}
}

was nun auftritt ist, dass die Methode "log" gar nicht ausgeführt wird.
'vor log' wird noch ausgegeben aber nicht mal mehr 'logging' und danach
ist schluss. Woran kann das denn nun liegen? Kann mir das wirklich nicht
erklären

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 16:49:41 von Gilbert Mirenque

OK - bin jetzt wieder ein wenig weiter. Danke dir.
Und wie nicht anders zu erwarten war, stehe ich nun vor einem anderen
Problem, was ich mir überhaupt nicht erklären kann.

Hier der Code zum Aufruf:

if($_SESSION['Logger'] === NULL){
$logger = new
Logger('localhost','DB','logs','test','test','ID');
echo 'neue instanz';
} else {
echo 'alte instanz';
}
echo 'vor log';
$logger->log($_REQUEST[session_name()],$moduleName,$pageTitl e);
echo 'nach log';

Hier nun der Code meiner Methode "log":

public function log($sessionID,$action,$data){
echo 'logging';
if($this->loggingAllowed){
$sql = "INSERT INTO ".$this->table." VALUES(NULL,'";
$sql .= $sessionID."',NOW(),'";

$sql .= $this->parent_id;

$sql .= "','".$action."','".$data."')";
echo $sql;
echo $this->parent_id;

$result = mysql_query($sql,$this->connection);
var_dump($result);
echo "
";
$this->parent_id = mysql_insert_id($this->connection);
echo $this->parent_id;
} else {
echo 'logging verboten';
}
}

was nun auftritt ist, dass die Methode "log" gar nicht ausgeführt wird.
'vor log' wird noch ausgegeben aber nicht mal mehr 'logging' und danach
ist schluss. Woran kann das denn nun liegen? Kann mir das wirklich nicht
erklären.

Gruß
G.M.

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 17:07:17 von Tobias Kutzler

Hi Gilbert,

Gilbert Mirenque schrieb:
> OK - bin jetzt wieder ein wenig weiter. Danke dir.
> Und wie nicht anders zu erwarten war, stehe ich nun vor einem anderen
> Problem, was ich mir überhaupt nicht erklären kann.
>
> Hier der Code zum Aufruf:
>
> $logger->log($_REQUEST[session_name()],$moduleName,$pageTitl e);

$_REQUEST[session_name()] führt glaube ich ins Leere. Wenn Du die
Session ID haben willst, findest Du diese in der Konstanten SID

$logger->log(SID,$moduleName,$pageTitle);

> was nun auftritt ist, dass die Methode "log" gar nicht ausgeführt wird.
> 'vor log' wird noch ausgegeben aber nicht mal mehr 'logging' und danach
> ist schluss.

Was heisst Schluss? Kommt einfach nix mehr? Auch keine Fehlerausgabe?
Wie ist Dein error_reporting gesetzt? Ich hoffe doch für den
Entwicklungsserver auf E_ALL?! ;-)

Ciao,
Tobias

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 17:17:41 von Gilbert Mirenque

Tobias Kutzler wrote:
> $_REQUEST[session_name()] führt glaube ich ins Leere. Wenn Du die
> Session ID haben willst, findest Du diese in der Konstanten SID
abgesehen davon, dass das mit meinem Problem nichts zu tun hat
funktioniert das auch mit REQUEST - aber wenn das deprecated ist, werde
ich gerne SID benutzen.

> Was heisst Schluss? Kommt einfach nix mehr? Auch keine Fehlerausgabe?
> Wie ist Dein error_reporting gesetzt? Ich hoffe doch für den
> Entwicklungsserver auf E_ALL?! ;-)

genau...es kommt nix mehr. gar nix mehr. nich mal eine Fehlerausgabe.
Reporting ist natürlich auf E_ALL gestellt.
Jemand ne Idee?

Gruß
G.M.

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 17:45:23 von Tobias Kutzler

Gilbert Mirenque schrieb:
> Tobias Kutzler wrote:
>> $_REQUEST[session_name()] führt glaube ich ins Leere. Wenn Du die
>> Session ID haben willst, findest Du diese in der Konstanten SID
> abgesehen davon, dass das mit meinem Problem nichts zu tun hat
> funktioniert das auch mit REQUEST - aber wenn das deprecated ist, werde
> ich gerne SID benutzen.

Doch hat es, weil das Skript an dieser Stelle abbricht.
>
>> Was heisst Schluss? Kommt einfach nix mehr? Auch keine Fehlerausgabe?
>> Wie ist Dein error_reporting gesetzt? Ich hoffe doch für den
>> Entwicklungsserver auf E_ALL?! ;-)
>
> genau...es kommt nix mehr. gar nix mehr. nich mal eine Fehlerausgabe.
> Reporting ist natürlich auf E_ALL gestellt.
> Jemand ne Idee?

Ist schon komisch, dass weder Fehler noch irgendetwas anderes ausgegeben
wird.

Vielleicht noch ne Idee: Wird denn der Variablen $logger ausser im
ersten Zweig der if-Bedingung noch irgendwo etwas zugewiesen? Meine
Vermutung ist, dass $_SESSION['Logger'] ungleich NULL ist und dann in
den else Zweig gesprungen wird. $logger ist dann aber wahrscheinlich
noch null, da ja die Instanz in der Session ist.

statt:
if($_SESSION['Logger'] === NULL){
$logger = new Logger('localhost','DB','logs','test','test','ID');
echo 'neue instanz';
} else {
echo 'alte instanz';
}
$logger->log($_REQUEST[session_name()],$moduleName,$pageTitl e);

dies hier:
if($_SESSION['Logger'] === NULL){
$logger = new Logger('localhost','DB','logs','test','test','ID');
echo 'neue instanz';
} else {
echo 'alte instanz';
$logger =& $_SESSION['Logger'];
}
$logger->log($_REQUEST[session_name()],$moduleName,$pageTitl e);

Nur ne Vermutung, da ich anhand des Code Schnipsels nicht erkennen kann,
was Du vorher machst. Vielleicht hilfts ja.

Ciao,
Tobias

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 18:04:00 von Ulf Kadner

Alex Hepp wrote:

> Ich muss zwar gestehen, dass ich bisher noch nicht in der Lage war, php5
> anzutesten,

:-o

Das klingt, in Anbetracht der Tatsache das PHP5 schon über 1,5 Jahre alt
ist, sehr makaber! :-)

Ich hab seit einigen Monaten nicht mehr mit PHP4 gearbeitet und hoffe
das sich da nicht noch was entscheidentes dran ändert.

MfG, Ulf

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 18:42:41 von dafox

Tobias Kutzler schrieb:
> Gilbert Mirenque schrieb:
>> Tobias Kutzler wrote:

>>> $_REQUEST[session_name()] führt glaube ich ins Leere. Wenn Du die
>>> Session ID haben willst, findest Du diese in der Konstanten SID

>> abgesehen davon, dass das mit meinem Problem nichts zu tun hat
>> funktioniert das auch mit REQUEST

> Doch hat es, weil das Skript an dieser Stelle abbricht.

Es gibt keinen ersichtlichen Grund, warum das Script an dieser Stelle
wegen des (völlig korrekten, wenn auch umständlichen) $_REQUEST[...]
abbrechen sollte. Hast du es ausprobiert?

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 18:44:30 von Ulf Kadner

Gilbert Mirenque wrote:

> if($_SESSION['Logger'] === NULL){

Ich würde hier lieber mit isset prüfen, da Du sonst ungewollte
Error-Notices auslöst wenn $_SESSION nicht existiert oder wenn
$_SESSION['Logger'] nicht existiert.

if (!isset($_SESSION['Logger'])) {

> $logger = new
> Logger('localhost','DB','logs','test','test','ID');

Hast Du nicht geschrieben das wär ein Singleton? Da gehören aber
definitiv keine Parameter in den Konstruktor. Die notwendigen Parameter
liest Du am besten im Konstrultor von einer global verfügbaren Quelle
(z.B.: Config-Klasse die auch meist ein Singleton ist)

Mal nen kurzes Beispiel.
Erst mal ne ganz billige DbConnection:

class DbCon
{
public $Host;
public $User;
public $Pass;
public $DB;
private static $instance = null;
private function __construct() {
$this->Host = 'localhost';
$this->User = 'root';
$this->Pass = '';
$this->DB = '';
}
public static function GetInstance() {
if (is_null(self::$instance)) self::$instance = new DbCon();
return self::$instance;
}
public function init($host, $user, $pass, $db) {
$this->Host = $host;
$this->User = $user;
$this->Pass = $pass;
$this->DB = $db;
}
public function initialized() {
return (!empty($this->Host) && !empty($this->User) &&
!empty($this->DB));
}
public abstract function connect();
public abstract function disconnect();
public abstract function exec($query);
}


jetzt ne Logger.Singleton:


class Logger
{
private $___logcount;
private static $instance = null;
private function __construct() {
$this->___logcount = 0;
}
public static function GetInstance() {
if (is_null(self::$instance)) self::$instance = new Logger();
return self::$instance;
}
public function write($msg, $code=0) {
if (!DbCon::GetInstance()->initialized())
throw new Exception('No db-connection exists for log!');
$sql = 'whatever..';
DbCon::GetInstance()->exec($sql);
}
}


einfache Anwendung:

DcConn::GetInstance()->init('localhost','user','secret','dbn ame');

try {
Logger->GetInstance()->write('anything to write...');
echo 'Logging OK'
}
catch (Exception $ex) { die($ex->getMessage()); }


Allerdings kann ich mir beim besten Willen nicht vorstellen welche Daten
des Loggers es wert sein sollen Sessionplatz zu bekommen.

Aber wenn Du es denn willst dann erweiter z.B. die
Initialisierungmethode des Loggers

public static function GetInstance() {
if (!is_null(self::$instance)) return self::$instance;
if (isset($_SESSION['logger'])) {
self::$instance = unserialize($_SESSION['logger']);
}
else {
self::$instance = new Logger();
$_SESSION['logger'] = serialize(self::$instance);
}
return self::$instance;
}

MfG, Ulf

Re: meine Singleton-Klasse wird immer neu instanziiert

am 06.10.2006 22:49:08 von Tobias Kutzler

Thomas 'DaFox' Hamacher schrieb:
> Tobias Kutzler schrieb:
>> Gilbert Mirenque schrieb:
>>> Tobias Kutzler wrote:
>
>>>> $_REQUEST[session_name()] führt glaube ich ins Leere. Wenn Du die
>>>> Session ID haben willst, findest Du diese in der Konstanten SID
>
>>> abgesehen davon, dass das mit meinem Problem nichts zu tun hat
>>> funktioniert das auch mit REQUEST
>
>> Doch hat es, weil das Skript an dieser Stelle abbricht.
>
> Es gibt keinen ersichtlichen Grund, warum das Script an dieser Stelle
> wegen des (völlig korrekten, wenn auch umständlichen) $_REQUEST[...]
> abbrechen sollte. Hast du es ausprobiert?

Ich hab mich etwas unglücklich ausgedrückt. Sorry. Ich meinte, dass es
sein kann, dass es daran liegt. Ausprobiert hab ich es nicht.

Ciao,
Tobias