¿Hay alguna forma de redefinir una clase o algunos de sus métodos sin usar herencia típica? Por ejemplo:Redefina los métodos de clase o clase
class third_party_library {
function buggy_function() {
return 'bad result';
}
function other_functions(){
return 'blah';
}
}
¿Qué puedo hacer para reemplazar buggy_function()
? Obviamente, esto es lo que me gustaría hacer
class third_party_library redefines third_party_library{
function buggy_function() {
return 'good result';
}
function other_functions(){
return 'blah';
}
}
Ésta es mi dilema exacta: Me ha modificado una biblioteca de terceros que rompe mi código. No quiero modificar la biblioteca directamente, ya que las futuras actualizaciones podrían volver a romper el código. Estoy buscando una manera perfecta de reemplazar el método de clase.
He encontrado este library que dice que puede hacerlo, pero soy cauteloso ya que tiene 4 años.
EDIT:
debería haber aclarado que no puedo cambiar el nombre de la clase de third_party_library
a magical_third_party_library
o cualquier otra cosa debido a las limitaciones del marco.
Para mis propósitos, ¿sería posible simplemente agregar una función a la clase? Creo que puedes hacer esto en C# con algo llamado "clase parcial".
PHP no es compatible con eso. Puede extender la clase y volver a usarla. Eso es. Lo siento. – Till
¿Puedes cambiar el nombre de la clase original con errores? Cambie el nombre a buggy_third_party y ejecútelo usted mismo, dando a su clase el nombre original. – gnud