Précédent   Forum des professionnels en informatique > PHP > Bibliothèques et frameworks > symfony
symfony Forum d'entraide sur le framework PHP symfony. Avant de poster : cours symfony et FAQ symfony
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 24/06/2008, 18h37   #1
Membre confirmé
 
Homme Christian FINEL
Développeur .NET
Inscription : avril 2004
Messages : 262
Détails du profil
Informations personnelles :
Nom : Homme Christian FINEL
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Finance

Informations forums :
Inscription : avril 2004
Messages : 262
Points : 294
Points : 294
Par défaut Stockage de message d'erreur dans un ficher YML

Bonjour à tous !

Je veux stocker les messages d'erreur de mon application dans un fichier YML. Je ne veux pas le faire dans le fichier app.yml qui est un fichier de configuration.

J'ai donc créé un fichier à part.

Comment faire pour que ce fichier soit pris en compte par Symfony et accessible à la manière 'sfConfig::get('cle');' ?

Si vous avez de meilleurs solutions je suis également preneur .
__________________
http://www.macreiben.net
MacReiben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 18h53   #2
Membre éclairé
 
Inscription : mai 2008
Messages : 359
Détails du profil
Informations forums :
Inscription : mai 2008
Messages : 359
Points : 397
Points : 397
Bonjour,

Si tu veux pouvoir créer et gérer des fichiers de configuration yaml, il faut créer un configuration handler, ce qui te permettra de définir toi-même une syntaxe pour tes fichiers yaml et les transformer en code php.
Maintenant je ne sais pas si c'est exactement ce que tu souhaites faire, ou si tu veux un système de gestion d'erreur personnalisé ?
Tsilefy est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/06/2008, 18h55   #3
Membre confirmé
 
Homme Christian FINEL
Développeur .NET
Inscription : avril 2004
Messages : 262
Détails du profil
Informations personnelles :
Nom : Homme Christian FINEL
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Finance

Informations forums :
Inscription : avril 2004
Messages : 262
Points : 294
Points : 294
C'est exactement ce que je cherchais - il faut donc que je crée une classe spécifique.

Je vais me baser sur ce qui existe déja dans Symfony.

Merci pour ta réponse
__________________
http://www.macreiben.net
MacReiben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 09h39   #4
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
Pour moi je me contente de cette méthode static sous lib/myUser.class.php du genre :

Code :
1
2
3
4
5
6
7
8
9
10
public static function msg($idMessage,$param=array()){
 
		$msg=array() ;
		$msg[0] = 'Bonjour' ;
		$msg[1] = 'bla bla bla' ;
		$msg[2] = 'Bonsoir' ;
                $msg[3] = 'bonjour %s %s' ;
		return isset($msg[$idMessage])?vsprintf($msg[$idMessage],$param):'index introuvable' ;
 
	}
ensuite dans l'appel :
ou dans le cas d'un message paramétrable
Code :
echo myUser::msg(3,array('Ahmed','phpiste')) ;
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 09h43   #5
Membre confirmé
 
Homme Christian FINEL
Développeur .NET
Inscription : avril 2004
Messages : 262
Détails du profil
Informations personnelles :
Nom : Homme Christian FINEL
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Finance

Informations forums :
Inscription : avril 2004
Messages : 262
Points : 294
Points : 294
Et donc si tu veux modifier un message d'erreur, tu modifie une classe PHP ?

C'est un peu crade non ?
__________________
http://www.macreiben.net
MacReiben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 10h20   #6
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
Citation:
Envoyé par MacReiben Voir le message
Et donc si tu veux modifier un message d'erreur, tu modifie une classe PHP ?

C'est un peu crade non ?
oui , je sait que ce n'est pas le top mais je me contente pour continuer mes dev quoi ;
enfin si tu trouve une autre façon je suis preneur
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/06/2008, 10h30   #7
Membre confirmé
 
Homme Christian FINEL
Développeur .NET
Inscription : avril 2004
Messages : 262
Détails du profil
Informations personnelles :
Nom : Homme Christian FINEL
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Finance

Informations forums :
Inscription : avril 2004
Messages : 262
Points : 294
Points : 294
Les fichiers exécutables ne doivent pas être modifiés - on ne peut donc pas mettre de messages d'erreurs en dur dans le code.

La méthode de Tsilefy (utilisation du config handler) est la meilleure : les messages d'erreurs sont modifiables sans toucher un seul fichier exécutable PHP. Une classe dédié se charge de les charger.

Ton code est juste, mais posera des problèmes de maintenance à long terme.
__________________
http://www.macreiben.net
MacReiben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 14h59   #8
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
OK
voila j'ai créer un fichier msg.yml contenant :
Code :
1
2
3
msg:
  bonjour: bonjour
  bonsoir: bonsoir
Ensuite j'ai ajouter dans mon config_handler les lignes suivantes :
config/msg.yml:
Code :
1
2
3
  class: sfDefineEnvironmentConfigHandler
  param:
    prefix: msg_
enfin d'apres la doc on peut utliser an " Existing configuration handlers " pour pouvoir recuperer les messages avec sfConfig alors j'ai ecrit dans la vue :
Code :
 <?php echo sfConfig::get('msg_bonsoir'); ?>
ce qui me retourne le vide avez vous une idée ou se trouve le problème ?
et à+
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 15h11   #9
Membre confirmé
 
Homme Christian FINEL
Développeur .NET
Inscription : avril 2004
Messages : 262
Détails du profil
Informations personnelles :
Nom : Homme Christian FINEL
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Finance

Informations forums :
Inscription : avril 2004
Messages : 262
Points : 294
Points : 294
Il faut que tu ajoutes :
Code :
1
2
 
include(sfConfigCache::getInstance()->checkConfig(sfConfig::get('sf_app_config_dir_name').'/msg.yml'));
Pour charger le fichier de configuration. Pour ma part je l'ai placé dans le controleur monapp_dev.php ; mais je pense que ce n'est pas judicieux.

Ceci dit, le fichier est chargé, donc si quelqu'un a une idée à ce sujet.

Source : doc de symfony, je l'ai pas sorti de mon chapeau
__________________
http://www.macreiben.net
MacReiben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 17h19   #10
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
ça marche pas malgré que je l'ai ajouté dans mon controller
any help please
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 17h26   #11
Membre confirmé
 
Homme Christian FINEL
Développeur .NET
Inscription : avril 2004
Messages : 262
Détails du profil
Informations personnelles :
Nom : Homme Christian FINEL
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Finance

Informations forums :
Inscription : avril 2004
Messages : 262
Points : 294
Points : 294
Recherche le fichier cache, à l'intérieur tu devrais avoir un dossier dev, dans ce dossier dev tu dois avoir un fichier genre config_msg.yml.php.

Si tu ne trouves pas le fichier en question, c'est qu'il y a un problème.

Si il y est, ouvres le. Tu dois voir dedans ce qu'il ajoute réelement au fichier de config.

A noté que si tu utilises ce handler, tu dois avoir au moins une section all. Ce handler est le même que celui qui parse ton fichier app.yml.
__________________
http://www.macreiben.net
MacReiben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 18h19   #12
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
Citation:
Envoyé par MacReiben Voir le message
Recherche le fichier cache, à l'intérieur tu devrais avoir un dossier dev, dans ce dossier dev tu dois avoir un fichier genre config_msg.yml.php.
euh il est vide ce fichier
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/06/2008, 18h29   #13
Membre confirmé
 
Homme Christian FINEL
Développeur .NET
Inscription : avril 2004
Messages : 262
Détails du profil
Informations personnelles :
Nom : Homme Christian FINEL
Localisation : France

Informations professionnelles :
Activité : Développeur .NET
Secteur : Finance

Informations forums :
Inscription : avril 2004
Messages : 262
Points : 294
Points : 294
Met quelque chose comme :

Code :
1
2
all:
    perso_bonsoir: 'Bonsoir tout le monde'
Dis moi si ça t'affiche quelque chose ; tu mets que ça dans msg.yml.
__________________
http://www.macreiben.net
MacReiben est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 27/06/2008, 16h51   #14
Membre régulier
 
Inscription : septembre 2006
Messages : 138
Détails du profil
Informations forums :
Inscription : septembre 2006
Messages : 138
Points : 81
Points : 81
Envoyer un message via MSN à phpiste
Citation:
Envoyé par MacReiben Voir le message
Dis moi si ça t'affiche quelque chose ; tu mets que ça dans msg.yml.
Il m'affiche bien "Bonsoir tout le monde" Merci
phpiste est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 18h05.


 
 
 
 
Partenaires

Hébergement Web