Bonjour,

Voila je cherche un moyen de capturer l'appel de fonction inexistante à la racine d'un script php (donc pas dans une classe ou autre).

Pour les classe il existe (__call, __callStatic), mais pour une fonction à la racine d'un script php, je n'ai pas trouvé de solution.

Cela reste surement impossible, mais si une personne avait quand même une solution, je suis preneur.

Cordialement,

3 réponses


MrGuillou
Auteur
Réponse acceptée

Le truc c'est que justement, les fonctions ne sont pas dans une classe ou espace de nom.
function_existe() permet tester l’existence d'une fonction, le bute étant là, d’appeler une fonction sans tester son existence, donc de se placer avant l'erreur php qui te dira que la fonction n'existe pas.
Il y a beaucoup de chance que ma petit expérimentation se termine sur un échec :)
Merci pour l'aide.

Vallyan
Réponse acceptée

Alors de ce que je sais: ce n'est pas possible :( ...
Bonne chance quand meme et si tu trouves: poste ici !

Pas possible, mais il y a des workarounds :

La fonction

function_exists()

permet de vérifier si une fonction existe

Autre solution, mettre toutes tes fonctions dans une classe

class Func
{
    public static function __callStatic($name, $arguments)
    {
        /* Ton code pour récup les methodes qui n'existent pas */
    }

    public function truc( $var )
    {
        /* ... */
    }
}
Func::truc("hello!");

source: http://stackoverflow.com/questions/3456763/magic-functions-call-for-functions