Пример #1
0
 public function toString($field)
 {
     $item = $this->{$field} ?? null;
     if (!array_key_exists($field, $this->_data)) {
         return null;
     } elseif (is_null($item)) {
         return var_export($item, true);
     } elseif (is_bool($item)) {
         return var_export($item, true);
     } elseif (is_string($item)) {
         return $item;
     } elseif (is_numeric($item)) {
         return $item;
     } elseif (is_array($item)) {
         return \mongo\format\JSON::encode($item);
     } elseif ($item instanceof \mongo\type\Timestamp) {
         return $item->__toString();
     } elseif ($item instanceof \mongo\type\DateTime) {
         return $item->__toString();
     } elseif ($item instanceof \MongoDB\BSON\ObjectId) {
         return $item->__toString();
     } elseif ($item instanceof \MongoDB\BSON\Binary) {
         return pretty_size(strlen($item->getData()));
     } elseif ($item instanceof \MongoDB\BSON\Javascript) {
         return \mongo\type\Javascript::bsonExport($item);
     } elseif ($item instanceof \MongoDB\BSON\Regex) {
         return \mongo\type\Regex::bsonExport($item);
     } elseif ($item instanceof \MongoDB\BSON\MaxKey) {
         return '$MaxKey';
     } elseif ($item instanceof \MongoDB\BSON\MinKey) {
         return '$MinKey';
     } else {
         return \mongo\format\JSON::encode($item);
     }
 }
Пример #2
0
 public static function bsonUnserialize($item)
 {
     if ($item instanceof \mongo\type\DateTime) {
         return ['tag' => 'DateTime', 'data' => $item->__toString()];
     } elseif ($item instanceof \mongo\type\Timestamp) {
         return ['tag' => 'Timestamp', 'data' => $item->__toString()];
     } elseif ($item instanceof \MongoDB\BSON\ObjectID) {
         return ['tag' => 'ObjectID', 'data' => $item->__toString()];
     } elseif ($item instanceof \MongoDB\BSON\Binary) {
         return ['tag' => 'Binary', 'data' => \mongo\type\Binary::bsonExport($item)];
     } elseif ($item instanceof \MongoDB\BSON\Javascript) {
         return ['tag' => 'Javascript', 'data' => \mongo\type\Javascript::bsonExport($item)];
     } elseif ($item instanceof \MongoDB\BSON\Regex) {
         return ['tag' => 'Regex', 'data' => \mongo\type\Regex::bsonExport($item)];
     } elseif ($item instanceof \MongoDB\BSON\MaxKey) {
         return ['tag' => 'MaxKey', 'data' => '$MaxKey'];
     } elseif ($item instanceof \MongoDB\BSON\MinKey) {
         return ['tag' => 'MinKey', 'data' => '$MinKey'];
     }
 }