Пример #1
0
 public function pack()
 {
     $eList = '';
     if (self::T_ROOT != $this->type) {
         $prefix = "";
         if (self::T_ARRAY == $this->type) {
             $prefix = "";
         }
         $eList = pack('aa*x', $prefix, $this->name);
     }
     foreach ($this->children as $key => $val) {
         if (is_scalar($val)) {
             $element = new BSONScalar($val, $key);
             $eList .= $element->pack();
         } else {
             $element = new BSONDocument($val, $key);
             $packed = $element->pack();
             $eList .= pack("a*xa*", $key, $packed);
         }
     }
     $len = 4 + strlen($eList);
     $eList = pack("la*", $len, $eList);
     return $eList;
 }
Пример #2
0
 public function encode($data)
 {
     $document = new BSONDocument($data);
     return $document->pack();
 }