Comment déprécier une fonction en PHP?

dans l'équipe avec laquelle je travaille, nous avons un vieux codebase utilisant les fonctions ibase_* de PHP partout dans le code pour communiquer avec la base de données. Nous avons créé un wrapper qui ferait autre chose que simplement appeler la fonction originale et j'ai fait une recherche de masse-remplacer dans tout le code pour m'assurer que wrapper est utilisé à la place.

maintenant, comment empêcher l'utilisation des fonctions ibase_* dans le futur?

de préférence, j'aimerais qu'ils soient encore disponibles, mais faites-le lancez un avis ou un avertissement lorsqu'il est utilisé.

une solution en PHP pur (pas besoin de compiler une version personnalisée de PHP) est préférée.

26
demandé sur Milan Babuškov 2008-10-11 18:24:55

6 réponses

si je comprends correct, vous voulez déclencher une erreur quand une fonction PHP intégrée est utilisée? Dans ce cas, jetez un coup d'oeil à la Modifier La Fonction fonction.

14
répondu 2008-10-11 15:02:27

trigger_error ()

function my_deprecated_function() {
    trigger_error("Deprecated function called.", E_USER_NOTICE);
    // do stuff.
}
40
répondu nickf 2008-10-11 14:34:58

en général, vous pouvez signaler une méthode comme dépréciée pour donner à vos utilisateurs des avertissements sur le code qui ne fonctionnera pas dans les versions futures. Je pense que la meilleure façon est d'utiliser trigger_error avec quelques phpdoc.

/**
 * @deprecated
 *
 * @return $this
 */
public function oldMethod()
{
    trigger_error('Method ' . __METHOD__ . ' is deprecated', E_USER_DEPRECATED);

    return $this;
}

@deprecated phpdoc est important car beaucoup D'IDEs aiment PHPStorm reconnaissez - le et supprimez le nom de la méthode si vous essayez de l'utiliser, de sorte que vous remarquez qu'il est déprécié avant d'exécuter réellement votre code.

Il ressemblera plus ou moins comme ceci:

jetbrains deprecated strikethrough

à côté du phpdoc, vous pouvez vous assurer que l'utilisateur reçoit un avertissement en déclenchant la bonne erreur à l'exécution. Assurez-vous d'utiliser la bonne constante (i.e.