[PHP] Test d'une classe

Résolu
Bonjour,

J'ai un petit soucis actuellement. Pour les besoins d'un projet, j'ai créé en PHP un classe pour mes logs, la voici :
Class Logger {
	
	var $_file 			= null;
	// --- Possoble mode value :
	// ---  0 = error mode (error traces)
	// ---  1 = debug mode (error + debug traces)
	var $mode 			= null;
	var $nb_log 		= null;
	var $list_log 	= null;
	
	function Logger ( $file, $mode ){
		$this->_file = $file;
		$this->mode = $mode;
		$this->nb_log = 0;
	}
	
	function addLogMessage ( $logMessage ){
		$this->list_log[$this->nb_log] = $logMessage;
		$this->nb_log++;
	}
	function clearLogs ( ){
		for ($i = 0; $i < $this->nb_log; $i++ )
			unset($this->list_log[$i]);
		$this->nb_log = 0;
	}
	function writeLogFile ( ){		
		// --- Open the log file (read/write)
		$fp = fopen($this->_file,"r+");
		// --- Go to the begin
		fseek($fp,0);
		// --- Write the message in the file
		for ( $i = 0; $i < $this->nb_log; $i++ ){
			fputs($fp,$this->list_log[$i]."\r\n");
		}
		// --- Close the log file
		fclose($fp);      
	}
}



Une classe toute simple donc. J'ai le probleme suivant : Au début d'un script, je créé une instance de cette classe :
$logger = new Logger("./log.txt",1);


Puis au cours de mon script, j'y fais appel pour mettre des messages d'erreur, warning, etc..
$logger->addLogMessage("toto part en vacances");


Et enfin, à la fin de mon script (ou en cas d'erreur), j'écris ces logs dans un fichiers texte (log.txt) :
$logger->writeLogFile();


Le hic c'est que rien ne s'affiche dans mon fichier texte, alors que les message sont bien ajoutés dans la liste de l'objet Logger.

Pourriez-vous tester chez vous cette classe pour savoir si cela vient uniquement de chez moi ou pas ? Car il y a 3 jour tout marchait bien, et maintenant je n'ai plus rien :s

Merci :)
--
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

2 réponses

  1. Contributeur
    J'ai une piste, si vous mettez cela dans un fichier php :
    <?php
    
    Class Logger {
    	
    	var $_file 			= null;
    	// --- Possoble mode value :
    	// ---  0 = error mode (error traces)
    	// ---  1 = debug mode (error + debug traces)
    	var $mode 			= null;
    	var $nb_log 		= null;
    	var $list_log 	= null;
    	
    	function Logger ( $file, $mode ){
    		$this->_file = $file;
    		$this->mode = $mode;
    		$this->nb_log = 0;
    	}
    	
    	function addLogMessage ( $logMessage ){
                    echo "Message ajouté : ".$logMessage."<BR>";
    		$this->list_log[$this->nb_log] = $logMessage;
    		$this->nb_log++;
    	}
    	function clearLogs ( ){
    		for ($i = 0; $i < $this->nb_log; $i++ )
    			unset($this->list_log[$i]);
    		$this->nb_log = 0;
    	}
    	function writeLogFile ( ){		
    		// --- Open the log file (read/write)
    		$fp = fopen($this->_file,"w+");
    		// --- Go to the begin
    		//fseek($fp,0);
                    if ( $fp != false ){
    		   // --- Write the message in the file
    		   for ( $i = 0; $i < $this->nb_log; $i++ ){
                             echo "Message a écrire : ".$this->list_log[$i]."<BR>";
    			 fputs($fp,$this->list_log[$i]."\r\n");
    		   }
    		   // --- Close the log file
    		   fclose($fp);
                    }
                    else echo "Ne peut pas ouvrir le fichier<BR>";      
    	}
    }
    
    
    
    $logger = new Logger("./log.txt",1);
    $logger->addLogMessage("toto part en vacances");
    $logger->addLogMessage("pour s'amuser un peu");
    $logger->writeLogFile();
    
    ?>
    


    Vous verrez que entre le temps ou les messages sont ajoutés dans la liste de l'objet et le temps ou ils sont repris pour etre affichés, ceux-ci n'ont plus de valeur (0) :s

    Quelqun saurait-il ce qu'il se passe ? (ou peut etre que ca ne le fais que chez moi toujours, vous pouvez confirmer ?)
    0
    1. Coucou !!

      Bon, ne te fais pas une fausse joie : je ne pourrais/saurais pas t'aider ...

      Par contre, je peux tester ce que tu as envoyé !

      Quand j'exécute ton script à l'affichage j'ai :
      Message ajouté : toto part en vacances
      Message ajouté : pour s'amuser un peu
      Message a écrire : toto part en vacances
      Message a écrire : pour s'amuser un peu

      Et dans le fichier log.txt :
      toto part en vacances
      pour s'amuser un peu

      Voilà ... je ne sais pas si ça t'aide !!

      Bon courage ;-)
      0
      1. Contributeur
        Sérieusement ?!

        Bahh !! Merci ca m'aide beaucoup... et en même temps j'aurais préféré que ca ne marche pas chez toi. Ca veut dire que mon environnement de test n'est pas bon ou cloche quelque part. Va falloir que je fasse une ré-installation :s

        Merci ellessa pour ce coup de pouce :)
        0
      2. @kij_82Mais de rien : heureuse d'avoir pu t'aider !!

        Pour une fois que je peux aider les autres, ça me fait très plaisir ... d'autant plus que tu m'as bien aidée !!

        Bon courage à toi !!
        0