PHPCRPurger.php 943 B

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. <?php
  2. declare(strict_types=1);
  3. namespace Doctrine\Common\DataFixtures\Purger;
  4. use Doctrine\ODM\PHPCR\DocumentManager;
  5. use Doctrine\ODM\PHPCR\DocumentManagerInterface;
  6. use PHPCR\Util\NodeHelper;
  7. /**
  8. * Class responsible for purging databases of data before reloading data fixtures.
  9. */
  10. class PHPCRPurger implements PurgerInterface
  11. {
  12. /** @var DocumentManagerInterface|null */
  13. private $dm;
  14. public function __construct(?DocumentManagerInterface $dm = null)
  15. {
  16. $this->dm = $dm;
  17. }
  18. public function setDocumentManager(DocumentManager $dm)
  19. {
  20. $this->dm = $dm;
  21. }
  22. /**
  23. * @return DocumentManagerInterface|null
  24. */
  25. public function getObjectManager()
  26. {
  27. return $this->dm;
  28. }
  29. /**
  30. * @inheritDoc
  31. */
  32. public function purge()
  33. {
  34. $session = $this->dm->getPhpcrSession();
  35. NodeHelper::purgeWorkspace($session);
  36. $session->save();
  37. }
  38. }