Сериализованное отражение PHP - PullRequest
9 голосов
/ 29 мая 2011

Пожалуйста, рассмотрите следующий пример кода:

<?php

class a {
    function b() {}
}

$r=new ReflectionMethod(new a, "b");
var_dump($r->getParameters());
$s=serialize($r);
$r=unserialize($s);
var_dump($r->getParameters());

?>

, который производит следующий вывод:

array(0) { }
Fatal error: ReflectionFunctionAbstract::getParameters() [<a href='reflectionfunctionabstract.getparameters'>reflectionfunctionabstract.getparameters</a>]: Internal error: Failed to retrieve the reflection object in [...]test.php on line 13

Вопрос стоит, есть ли способ правильно сериализовать / десериализовать объекты Reflection вPHP?

Спасибо.

Ответы [ 2 ]

2 голосов
/ 29 мая 2011

от http://bugs.php.net/bug.php?id=30324

Сериализация не работает на виртуальной свойства и эта проблема обычно происходит с внутренними классами.

Может быть, дело в этом методе. Однако я не уверен, что документация не ясна. http://in3.php.net/manual/en/reflectionfunctionabstract.getparameters.php

0 голосов
/ 29 марта 2017

Используйте Сериализатор JMS для сериализации частных и защищенных свойств, а также виртуальных свойств с использованием методов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...