En el caso que mencionas puedes usar polimorfismo mediante herencia, ejemplo
Código PHP:
Ver originalclass Foo {
function myFoo() {
$cod = 'Código malo';
return $cod;
}
function Baz() {
$cod = 'Código bueno';
return $cod;
}
}
class CustomFoo extends Foo {
public function myFoo()
{
$badCode = parent::myFoo();
return $this->fix($badCode);
}
public function fix($code)
{
}
}
class Bar {
private $foo;
public function __construct(Foo $foo)
{
$this->foo = $foo;
}
public function myFoo()
{
return $this->foo->myFoo();
}
}
$foo = new CustomFoo;
echo( $foo->myFoo() );
//Test in class Bar
$bar = new Bar($foo);
echo $bar->myFoo();