Bonjour à tous,
Voila, je voudrais savoir s'il existe un moyen pour redéclarer une fonction qui existe déjà dans PHP.
En faite, je voudrais faire un truc du genre (je sais que sa ne marche pas)
Code PHP :
<?php
function mysql_error()
{
return mysql_error().'fichier: '.__file__.' ligne: '.__line__;
}
?>
Voila, je doute que ce soit possible, mais on ne sais jamais, peut être que quelqu'un une solution

. Le must serait même l'envoie de l'erreur par e-mail

.
Fin bref...
A mon avis, et après quelques recherches, c'est impossible, autant te créer une classe SQL qui gèrera tes erreurs, y'a quelques sujets qui en parlent sur la board.
tu te rends compte que ton code serait "une boucle infinie"; car tu aurais une fonction récursive (qui s'appelle elle-même) sans condition de sortie pour la récursion; ben oui, si les mot-clé/fonction interne étaient pas protégée et que tu surcharge comme tu voudrais le faire y aurais un soucis
remplace dans ton code mysql_error() par n'importe quoi si tu comprends pas ou est le soucis:
function bidon(){
return bidon().'fichier...';
}
edit:
en plus j'avais pas vu

ta fonction te serviras pas à faire ce que tu veux faire (__LINE__ et __FILE__ serait remplacé par la ligne/fichier de la déclaration de ta fonction... et non l'emplacement de ton erreur dans ton code)
une fonction PHP est une fonction, ça n'a rien à voir avec une macro >_<
sinon tu peux regarder du coté de error_log() pour ton envoi d'email.
Citation :tu te rends compte que ton code serait "une boucle infinie";
Oui je le sais, ce code est juste pour illustré, c'est plus facile a comprendre comme sa que d'expliquer avec des mots...
Citation :ta fonction te serviras pas à faire ce que tu veux faire (__LINE__ et __FILE__ serait remplacé par la ligne/fichier de la déclaration de ta fonction... et non l'emplacement de ton erreur dans ton code)
une fonction PHP est une fonction, ça n'a rien à voir avec une macro >_<
Sa par contre je le savais pas...
Peut on s'en servir de __line__ comme paramètre de fonction ?
Citation :A mon avis, et après quelques recherches, c'est impossible, autant te créer une classe SQL qui gèrera tes erreurs, y'a quelques sujets qui en parlent sur la board.
Ouais, m'enfin le jeu est déjà bien avancé... j'ai juste toujours remit a plus tard la gestion des erreurs

Oui tu peux t'en servir comme paramètre.
oui tu peux utiliser __LINE__, etc comme paramètre de fonction.

et pour ton problème tu te crée une fonction générale pour tes erreur genre
function error_msg($err, $file, $line){
return $err.' fichier: '.$file.' ligne: '.$line;
}
et tu utilise des appels genre;
error_msg(mysql_error(),__FILE__,__LINE__);
autre option:
trigger_error() et set_error_handler().
Les Exceptions étendues sont peut être une bonne idée pour la gestion des erreurs. Enfin, je trouve que c'est un manière élégante et simple de gérée les erreurs et de faire leur journalisation. Mais ce n'est que mon avis.
Code PHP :
function myFunction()
{
throw new Exception('MyError');
}
try {
myFunction();
}
catch (Exception $myException)
{
echo $myException;
}
En cherchant sur le Net tu trouveras plus d'informations, sur les Exception en général, et plus précisément dans PHP.
Bonne chance pour la suite.
http://www.php.net/manual/fr/language.exceptions.php
http://www.php.net/manual/fr/language.ex...ending.php