Rechercher : dans
Par :

[PHP] Test d'une classe

Dernière réponse le 29 nov 2006 à 12:35:02 kij_82, le 29 nov 2006 à 09:55:37 
 Signaler ce message aux modérateurs

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 ! ~

Meilleures réponses pour « [PHP] Test d'une classe » dans :
PHP - Les classes Voir La notion de classe Php3 intègre un soupçon de caractéristiques empruntées aux langages orientés objet, c'est-à-dire la possibilité d'utiliser des objets, entités regroupant des données et des fonctions au sein d'une structure et rendant la...
Installation rapide de LAMP (Apache+MySql+php) sous Linux VoirLAMP = Linux+Apache+MySql+Php. C'est le serveur web par excellence. L'ensemble est facile à installer. Installation rapide sudo aptitude install apache2 php5 mysql-server php5-mysql libapache2-mod-php5 Le mot de passe administrateur mySQL...
[PHP] Vérifier le domaine d'une adresse mail VoirDans une adresse email, on trouve deux parties: utilisateur@domaine La partie domaine définit un ensemble de machines associées dans lequel on trouvera généralement un serveur qui permet d'envoyer des mails. Dans ce domaine il y a des utilisateurs....
[Shell] Tester une variable numérique VoirTester une variable numérique    Préambule Dans un environnement "shell", les variables sont, par défaut, de type "chaîne de caractères". De ce fait il n'est pas possible de déclarer une variable de type "entier" (enfin, ceci n'est pas tout à...
PHP - Les fichiers VoirLa gestion des fichiers avec PHP Avec PHP, la création ou la lecture de fichiers est, une fois de plus, assez simple. Il existe une multitude de fonctions dédiées à l'utilisation des fichiers. La communication entre le script PHP et le fichier...
PHP - Structures conditionnelles VoirQu'est-ce qu'une structure conditionnelle? On appelle structure conditionnelle les instructions qui permettent de tester si une condition est vraie ou non, c'est-à-dire si la valeur de son expression vaut 0 ou 1 (le PHP associe le mot clé true à 1...
PHP - Parser du XML VoirIntroduction à XML PHP permet l'analyse syntaxique (parsage ou parsing en anglais) d'un document XML. Le langage XML (eXtensible Markup Language, traduisez Langage à balises extensibles) est un métalangage, c'est-à-dire un langage permettant de...

1

kij_82, le 29 nov 2006 à 11:34:19

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 ?)
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

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

Répondre à kij_82

2

elsadelatoundra, le 29 nov 2006 à 12:11:13

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 ;-)

ellessa mange des cerises

Répondre à elsadelatoundra

3

kij_82, le 29 nov 2006 à 12:19:26

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 :)
~ iclic @ gauch,iclic, iclic @ droate, iclic, iclic
et ya pas de bôg môsieu ! ~

Répondre à kij_82

4

 elsadelatoundra, le 29 nov 2006 à 12:35:02

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 !!

ellessa mange des cerises

Répondre à elsadelatoundra