Your IP : 216.73.217.79


Current Path : /var/www/v3.cesa.co.za/vendor/doctrine/data-fixtures/src/Purger/
Upload File :
Current File : /var/www/v3.cesa.co.za/vendor/doctrine/data-fixtures/src/Purger/PHPCRPurger.php

<?php

declare(strict_types=1);

namespace Doctrine\Common\DataFixtures\Purger;

use Doctrine\ODM\PHPCR\DocumentManagerInterface;
use PHPCR\Util\NodeHelper;

/**
 * Class responsible for purging databases of data before reloading data fixtures.
 */
final class PHPCRPurger implements PHPCRPurgerInterface
{
    public function __construct(private DocumentManagerInterface|null $dm = null)
    {
    }

    public function setDocumentManager(DocumentManagerInterface $dm): void
    {
        $this->dm = $dm;
    }

    public function getObjectManager(): DocumentManagerInterface|null
    {
        return $this->dm;
    }

    public function purge(): void
    {
        $session = $this->dm->getPhpcrSession();
        NodeHelper::purgeWorkspace($session);
        $session->save();
    }
}