@ff0xff

Как исключить из серелизации объекты класса?

Подскажите пожалуйста как исключить не серелизуемые объекты из класса при серелизации?

например у меня есть объект Doctrine - doctrine сама по себе не серелизуется потому что в ней есть анонимные функции.... накой то ху....

Ну не суть, я заюзал доктрину получил некоторый скалярный результат...
И хочу серелизовать класс что бы сделать с ним что то дальше.

например:

use App/Doctrine;
class A{
    private $doctrine = NULL;
    public $result = NULL;
    public function __construct(Doctrine $doctrine)
    {
        $this->doctrine = $doctrine;
        $this->work();

    }

    private function work()
    {
        //here work
        $result = $this->doctrine->action....();
        // The output of the result is a simple result of scalar data in the array
        var_dump($result);
        /*
         * $result -> 
         * array(
         *  1 => 10
         *  2 => 100500
         *  3 => 40
         *  ...etc....
         * )
         * 
         */
    }


Во общем все как бы ок, у меня на выходе получается простой массив с числами.
Но если я попробую серелизовать класс А то получу ошибку ( ну в случае с Doctrine потому что там анонимная функция а они не серелизуются... )
Но вот прикол в том что мне не нужна Doctrine в дальнейшем.
Я пробовал делать в конце что то вроде unset($this->doctrine) и $this->doctrine = null
Но это не помогло ошибка серелизации осталась.

PS: Я тут предвещаю бугурт и кидание тапками в меня, поэтому хочу пояснить как родился вообще такой вопрос, я работаю не просто с php а zts-php когда zts собирает потоки после работы он серелизует классы, что бы передать их в родительский процесс. из за этого возникает трабла при работе с doctrine потому что он не может ее серелизовать, а по другому получить результат выполнения потока не получается... :-\

Ну что кто что посоветует?
  • Вопрос задан
  • 42 просмотра
Пригласить эксперта
Ответы на вопрос 1
kruslan
@kruslan
Это не помогает? Вы-ж можете регулировать, что отправлять в сериализацию, а что нет...
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через TM ID
Похожие вопросы