msgpack / msgpack-php

msgpack.org[PHP]
BSD 3-Clause "New" or "Revised" License
773 stars 119 forks source link

PHP Fails to Deserialize Date Objects Created in Javascript #127

Open doc987 opened 5 years ago

doc987 commented 5 years ago

If a Date object is created in Javascript (new Date()), and is serialized with MessagePack, then PHP will fail to deserialize with the following message: PHP Warning: [msgpack] (php_msgpack_unserialize) Parse error

This happens if the Date object is by itself, or part of another object. It also happens if the serialization is done with either of the two javascript libraries listed on https://msgpack.org

MessagePack Specification: https://github.com/msgpack/msgpack/blob/master/spec.md

Expected Behavior: Javascript Date is deserialized to PHP DateTime.

rybakit commented 5 years ago

Unfortunately, msgpack-php doesn't support the ext type yet (see this comment). As a workaround, you can use the pure php msgpack library.

doc987 commented 5 years ago

Are there plans to do so, or is this library no longer being maintained? I noticed there hasn't been a release since December 6, 2016. I would generally prefer an extension as they are likely to have better performance (and one of the benefits of MessagePack is better performance), but if the PHP implementation is the one being maintained, then that would be a better choice. Is it recommended that the PHP implementation be used for new projects instead of the PHP extension?

m6w6 commented 4 years ago

This is on the roadmap now.