Я читаю здесь: http://osdir.com/ml/php.phpunit.user/2008-05/msg00009.html что смена класса final
поведение может быть изменено с помощью runkit — я просто не могу понять, как это сделать.
РЕДАКТИРОВАТЬ: не -1 мне пожалуйста, я проверил функцию runkit_import (), а также http://php.net/manual/en/runkit.constants.php до сих пор не могу найти путь
Это … ограниченного использования. Иллюстрация:
final class Foo {
protected $var = '456';
function doSomething(){
return '123';
}
function getVar(){
return $this->var;
}
}
class Bar {
}
runkit_class_adopt('Bar','Foo');
$d = new Bar();
var_dumP($d->doSomething());
//string(3) "123"var_dumP($d->getVar());
//PHP Notice: Undefined property: Bar::$var in .... on line 10
//NULL
Вы обычно лучше пишете декоратор для final
занятия (или удаление final
из источника).
Других решений пока нет …