Redéfinir les Méthodes de la Classe ou de la Classe

Est-il possible de redéfinir une classe ou certaines de ses méthodes, sans l'aide d'typique de l'héritage? Par exemple:

class third_party_library {
    function buggy_function() {
        return 'bad result';
    }
    function other_functions(){
        return 'blah';
    }
}

Que puis-je faire pour remplacer buggy_function()? Évidemment, c'est ce que je voudrais faire

class third_party_library redefines third_party_library{
    function buggy_function() {
        return 'good result';
    }
    function other_functions(){
        return 'blah';
    }
}

C'est mon exact dilemme: j'ai mis à jour une bibliothèque tierce qui brise mon code. Je ne veux pas modifier la bibliothèque directement, comme les futures mises à jour pourraient briser à nouveau le code. Je suis à la recherche d'une méthode simple pour remplacer la méthode de classe.

J'ai trouvé cette bibliothèque qui dit qu'il peut le faire, mais je suis méfiant car c'est l'âge de 4 ans.

EDIT:

Je devrais avoir précisé que je ne peux pas renommer la classe de third_party_library à magical_third_party_library ou quoi que ce soit d'autre à cause de cadre de limites.

Pour mes fins, serait-il possible de simplement ajouter une fonction à la classe? Je pense que vous pouvez le faire en C# avec quelque chose qui s'appelle une "classe partielle."

  • PHP ne supporte pas cela. Vous pouvez étendre la classe et de ré-utiliser. Qui est-il. Désolé.
  • Vous pouvez renommer l'original buggy classe? Renommer buggy_third_party, et exend vous-même, de donner à votre classe, le nom d'origine.
InformationsquelleAutor SeanDowney | 2008-09-26