original_string: public function persist($document)
      {
          if (!is_object($document)) {
              throw new \InvalidArgumentException(gettype($document));
          }
          $this->errorIfClosed();
          $this->unitOfWork->persist($document);
      }
code: public function persist($document)
      {
          if (!is_object($document)) {
              throw new \InvalidArgumentException(gettype($document));
          }
          $this->errorIfClosed();
          $this->unitOfWork->persist($document);
      }
code_tokens: public function persist ( $ document ) { if ( ! is_object ( $ document ) ) { throw new \ InvalidArgumentException ( gettype ( $ document ) ) ; } $ this -> errorIfClosed ( ) ; $ this -> unitOfWork -> persist ( $ document ) ; }
docstring: Tells the DocumentManager to make an instance managed and persistent.
  
  The document will be entered into the database at or before transaction
  commit or as a result of the flush operation.
  
  NOTE: The persist operation always considers documents that are not yet known to
  this DocumentManager as NEW. Do not pass detached documents to the persist operation.
  
  @param object $document The instance to make managed and persistent.
  
  @throws \InvalidArgumentException When the given $document param is not an object
docstring_tokens: Tells the DocumentManager to make an instance managed and persistent .