Entity/DocumentRepository.php
author cavaliet
Thu, 20 Oct 2011 18:35:33 +0200
changeset 8 7d2fb5d7c9ff
parent 5 45378793512a
child 18 6f16b9fd6a17
permissions -rwxr-xr-x
debug addtag for document
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
2
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     1
<?php
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     2
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     3
namespace IRI\Bundle\WikiTagBundle\Entity;
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     4
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     5
use Doctrine\ORM\EntityRepository;
3
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
     6
use IRI\Bundle\WikiTagBundle\Model\DocumentInterface;
2
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     7
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     8
/**
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
     9
 * DocumentRepository
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    10
 *
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    11
 * This class was generated by the Doctrine ORM. Add your own custom
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    12
 * repository methods below.
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    13
 */
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    14
class DocumentRepository extends EntityRepository
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    15
{
5
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    16
    function findOneByExternalId($external_id)
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    17
    {
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    18
        return $this->findOneBy(array("externalId" => strval($external_id)));
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    19
    }
3
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    20
    
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    21
    function writeDocument(DocumentInterface $document)
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    22
    {
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    23
        # get document from id
5
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    24
        $baseDocument = $this->findOneByExternalId($document->getId());
3
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    25
    
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    26
        if(is_null($baseDocument))
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    27
        {
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    28
            $baseDocument = new Document();
5
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    29
            $baseDocument->setExternalId(strval($document->getId()));
3
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    30
        }
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    31
        $baseDocument->setDescription($document->getDescription());
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    32
        $baseDocument->setTitle($document->getTitle());
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    33
        
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    34
        $this->getEntityManager()->persist($baseDocument);
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    35
        $this->getEntityManager()->flush();
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    36
        return $baseDocument;
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    37
    
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    38
    }
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    39
    
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    40
    function removeDocument(DocumentInterface $document)
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    41
    {
5
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    42
        $baseDocument = $this->findOneByExternalId($document->getId());
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    43
        if(!is_null($baseDocument))
45378793512a Correct tag insert + external id on doc
ymh <ymh.work@gmail.com>
parents: 3
diff changeset
    44
        {
3
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    45
            $this->getEntityManager()->remove($baseDocument);
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    46
        }
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    47
    }
976d922e52f0 link document lifecycle
ymh <ymh.work@gmail.com>
parents: 2
diff changeset
    48
    
2
13f43f53d0ba first implementation
ymh <ymh.work@gmail.com>
parents:
diff changeset
    49
}