Ver Mensaje Individual
  #2 (permalink)  
Antiguo 11/07/2016, 08:25
Avatar de hhs
hhs
Colaborador
 
Fecha de Ingreso: junio-2013
Ubicación: México
Mensajes: 2.995
Antigüedad: 10 años, 9 meses
Puntos: 379
Respuesta: Sobrescribir una función que se encuentra dentro de una clase

En el caso que mencionas puedes usar polimorfismo mediante herencia, ejemplo
Código PHP:
Ver original
  1. class Foo {
  2.     function myFoo() {
  3.         $cod = 'Código malo';
  4.         return $cod;
  5.     }
  6.  
  7.     function Baz() {
  8.         $cod = 'Código bueno';
  9.         return $cod;
  10.     }
  11. }
  12.  
  13. class CustomFoo extends Foo {
  14.  
  15.     public function myFoo()
  16.     {
  17.         $badCode = parent::myFoo();
  18.         return $this->fix($badCode);
  19.     }
  20.    
  21.     public function fix($code)
  22.     {
  23.         return str_replace('malo','bueno', $code);
  24.     }
  25.    
  26.  
  27. }
  28.  
  29. class Bar {
  30.    
  31.     private $foo;
  32.  
  33.     public function __construct(Foo $foo)
  34.     {
  35.         $this->foo = $foo;
  36.     }
  37.    
  38.     public function myFoo()
  39.     {
  40.         return $this->foo->myFoo();
  41.     }
  42. }
  43.  
  44.  
  45. $foo = new CustomFoo;
  46.  
  47. echo( $foo->myFoo() );
  48.  
  49. //Test in class Bar
  50.  
  51. $bar = new Bar($foo);
  52. echo $bar->myFoo();
__________________
Saludos
About me
Laraveles
A class should have only one reason to change.