[dev] Serializing imp objects with Horde_Pack

Ralf Lang ralf.lang at ralf-lang.de
Sat Oct 8 07:57:26 UTC 2022


Hello,

I am currently reducing notice noise for PHP 8.1 and I encounter some 
serialization issue.
IMP uses a lot of serialization to session and it uses Horde_Pack to 
provide a more concise representation than the native format.

But PHP urges to upgrade to the new __serialize / __unserialize methods 
that handle an array format.

Normally I would do it this way: The part that picks attributes for an 
array representation moves to __serialize/__unserialize. 
serialize/unserialize call into these but wrap it into a call to the 
serialize function to turn it into a string or unpack the string.

That won't work in our case.

Now there are two options:

- Keep the whole Horde_Pack code as is and move it to the new method, 
but wrap the resulting string into a single-element array. Unwrap that 
array in the older serialize/unserialize methods.

- Just handle the array inĀ  __serialize / __unserialize. Treat the 
serialize() method as a normal function into which some higher level of 
our code explicitly calls.


As I feel some urgency to move forward I will first implement option 
one. Depending on discussion, if any, I am happy to change of course.

Regards


Ralf



More information about the dev mailing list