GithubHelp home page GithubHelp logo

Comments (7)

jmikola avatar jmikola commented on July 19, 2024

Thanks for the feedback! We've actually been tracking this in PHPLIB-74 and hope to have it resolved before the 1.0.0 release.

Supporting a type map option at the Client, Database, and Collection level is definitely feasible, and we'd also like to provide a class implementing ArrayAccess to use by default (instead of stdClass). We definitely don't want to encourage regular PHP arrays, since those are lossy (we have no way of knowing if [0 => 'foo'] is really an array or an object when converting back to BSON); however, you'd certainly be allowed to specify an array in your own type map.

from mongo-php-library.

vlechemin avatar vlechemin commented on July 19, 2024

Thank you, that's great news. The class implementing ArrayAccess would be the perfect transition. Also, I'm not sure if it is a type map feature, but is it possible to allow a custom class for ObjectID to implement the JsonSerializable interface or add a public property to the class ObjectID (it used to be $id in the old driver) so the json_encode function does not return an empty object.

from mongo-php-library.

bjori avatar bjori commented on July 19, 2024

@vlechemin You can use BSON\toJSON() for that

    $oid = new MongoDB\BSON\ObjectID();
    $bson = MongoDB\BSON\fromPHP(array("oid" => $oid));
    $json = MongoDB\BSON\toJSON($bson);
    var_dump($json);
string(51) "{ "oid" : { "$oid" : "56213136bd21b96081103f11" } }"

I thought we had a ticket for going from PHP to (e)JSON but I cannot find it at the moment.
The intention was that you should be able to encode the BSON objects (such as ObjectID) using json_encode().

Its not going to make it into 1.0.0 though

from mongo-php-library.

bjori avatar bjori commented on July 19, 2024

See https://jira.mongodb.org/browse/PHPC-459

from mongo-php-library.

vlechemin avatar vlechemin commented on July 19, 2024

Thanks for the temporary solution and the ticket, I will be waiting for 1.1

from mongo-php-library.

jmikola avatar jmikola commented on July 19, 2024

On a related note, 1.0.0-beta2 of the library includes a new top-level typeMap option to centrally control BSON unserialization throughout the library.

from mongo-php-library.

jmikola avatar jmikola commented on July 19, 2024

#78 has now been merged (and PHPLIB-74 resolved), which means ArrayObject instances are being returned by default for BSON arrays and documents. We should have this out in a 1.0.0 release shortly.

from mongo-php-library.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.