Capturer un appel de fonction inexistante à la racine d'un script

Par MrGuillou, il y a 12 ans


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

Vallyan, il y a 12 ans

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

MrGuillou, il y a 12 ans

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, il y a 12 ans

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