PHP5 Errore: "Non-static method Log::singleton() should not be called statically

Ciao a Tutti!

Scusate ma sono da poco nel mondo del PHP.

Sul mio server in Hosting è stata aggiornata la versione del PHP dalla 4

alla 5.

Ora sul mio sito  compare il seguente errore: "Non-static method

Log::singleton() should not be called statically"

la linea in riferimento è questa: "

<?PHP

$logger = &Log::singleton('file',$backupFile , 'ident', $confLog);

?>

Spete cosa devo fare?

Grazie mille in anticipo!!!

CODICE COMPLETO

<?PHP

//----------Inizializzazione del logging System...------------

$logSystemClass="includes/Log/Log.php";

require_once($logSystemClass);

$backupFile=$backupPath.'sfera.log'; //file nel quale sarà scritto il log...

$confLog = array('mode' => 0600, 'timeFormat' => '%X %x');

$logger = &Log::singleton('file',$backupFile , 'ident', $confLog);

/*

for ($i = 0; $i < 10; $i++) {

    $logger->log("Log entry $i");

}

*/

?>
inviato 6 anni fa
albosimo
modificato 6 anni fa
X 0 X

Se non erro il problema nasce dal fatto che stai utilizzando una classe costruita per il php 4 e non per il php 5.

Col php 5 dovresti fare una cosa del genere quando istanzi una classe:

$oggetto = new Oggetto();
$oggetto->callMetodo();

Quando istanzi la classe il costruttore già dovrebbe contenere al suo interno (se è costruita così) il pattern singleton.

Soluzioni:

O sopprimi la visualizzazione dei messaggi d'errore, o usi una classe costruita appositamente per il php5.

Documentazione del php5:

http://www.php.net/manual/en/language.oop5.static.php

risposto 6 anni fa
Mario Santagiuliana
X 0 X

Grazie Mille!

Ora provo a sostituire le Classi...

risposto 6 anni fa
albosimo
X 0 X
Effettua l'accesso o registrati per rispondere a questa domanda