Sokil\Mongo\Collection::hydrate PHP Method

hydrate() public method

Factory method to get document object from array of stored document
public hydrate ( array $data, $useDocumentPool = true ) : Document
$data array
return Document
    public function hydrate($data, $useDocumentPool = true)
    {
        if (!is_array($data) || !isset($data['_id'])) {
            throw new Exception('Document must be stored and has _id key');
        }
        // if document already in pool - return it
        if ($useDocumentPool && $this->isDocumentPoolEnabled() && $this->isDocumentInDocumentPool($data['_id'])) {
            return $this->getDocumentFromDocumentPool($data['_id'])->mergeUnmodified($data);
        }
        // init document instance
        $className = $this->getDocumentClassName($data);
        $document = new $className($this, $data, array('stored' => true) + $this->definition->getOptions());
        // store document in cache
        if ($useDocumentPool && $this->isDocumentPoolEnabled()) {
            $this->addDocumentToDocumentPool($document);
        }
        return $document;
    }

Usage Example

Example #1
0
 /**
  * Get document instance
  * 
  * @return \Sokil\Mongo\Document
  */
 public function getDocument()
 {
     $data = $this->toArray();
     // restore document id
     $data['_id'] = $data['__documentId__'];
     // unset meta fields
     unset($data['__date__'], $data['__documentId__']);
     return $this->baseCollection->hydrate($data);
 }
All Usage Examples Of Sokil\Mongo\Collection::hydrate