Doctrine\ODM\MongoDB\DocumentManager::close PHP Method

close() public method

Closes the DocumentManager. All documents that are currently managed by this DocumentManager become detached. The DocumentManager may no longer be used after it is closed.
public close ( )
    public function close()
    {
        $this->clear();
        $this->closed = true;
    }

Usage Example

 /**
  * @param Doctrine\ODM\MongoDB\DocumentManager $documentManager
  */
 private function _save(DocumentManager $documentManager)
 {
     try {
         if ($this->queue->count() <= 0) {
             $this->getLog()->debug('Queue contains no documents for processing.');
             return;
         }
         $this->getLog()->debug('Queue contains: ' . $this->queue->count() . ' documents.');
         foreach ($this->queue as $object) {
             $name = $object->getName();
             $_id = $object->getId();
             if (empty($_id)) {
                 $document = $object->getInstance();
                 $this->getLog()->info('Saving document: ' . $name . ' (' . $document->__toString() . ')');
                 //Debug::dump($document, 3);
                 $documentManager->persist($document);
                 $documentManager->flush();
                 $documentId = $document->getId();
                 if (!empty($name) && !empty($documentId)) {
                     $this->getLog()->info('Marking document: ' . $name . ' (' . get_class($document) . ') as persisted in cache with ID: ' . $documentId);
                     $this->markAsPersisted($name, $documentId, $document);
                 }
             }
         }
         $this->queue->clear();
         $this->getLog()->debug('Finished saving documents, queue now contains: ' . $this->queue->count() . ' documents.');
     } catch (\Exception $ex) {
         $this->getLog()->err('An error occurred while attempting to save one or more documents. ' . get_class($ex) . ' handled, with message: ' . $ex->getMessage());
         $documentManager->close();
         throw $ex;
     }
 }