[PHP] Test d'une classe

Résolu/Fermé
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 - 29 nov. 2006 à 09:55
elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 - 29 nov. 2006 à 12:35
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 :)
A voir également:

2 réponses

kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
29 nov. 2006 à 11:34
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
elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 14
29 nov. 2006 à 12:11
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
kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013 857
29 nov. 2006 à 12:19
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
elsadelatoundra Messages postés 126 Date d'inscription mercredi 13 septembre 2006 Statut Membre Dernière intervention 3 juillet 2008 14 > kij_82 Messages postés 4089 Date d'inscription jeudi 7 avril 2005 Statut Contributeur Dernière intervention 30 septembre 2013
29 nov. 2006 à 12:35
Mais 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