Php, runkit, добавление нового метода -> apache вылетает
У меня есть абстрактный класс с методом, который я хочу вызвать:
abstract class KLASS
{
protected function pr()
{
return 'pr()';
}
}
поскольку я даже не могу это создать, я создаю на нем слой:
class KLASS2 extends KLASS
{
}
так:
$a = new KLASS2();
runkit_method_rename ('KLASS', 'pr', 'pr_old');
runkit_method_add ('KLASS', 'pr', '', 'var_dump (method_exists($this, "pr")); var_dump (method_exists($this, "pr_old")); return $this->pr_old();', RUNKIT_ACC_PUBLIC);
echo $a->pr();
Так что я делаю? Я переименую старый pr()
функция к pr_old()
и добавить новый pr()
с публичным доступом вместо. Это новый pr()
называет старый pr()
рутина, и это приводит к сбоям apache. Пожалуйста, не говорите мне просто редактировать классы, я должен оставить все классы нетронутыми.
Наиболее интересная часть, если pr()
это личное, все работает хорошо!