Doctrine\Common\DataFixtures\Purger\ORMPurger::purge PHP Метод

purge() публичный Метод

public purge ( )
    public function purge()
    {
        $classes = array();
        foreach ($this->em->getMetadataFactory()->getAllMetadata() as $metadata) {
            if (!$metadata->isMappedSuperclass && !(isset($metadata->isEmbeddedClass) && $metadata->isEmbeddedClass)) {
                $classes[] = $metadata;
            }
        }
        $commitOrder = $this->getCommitOrder($this->em, $classes);
        // Get platform parameters
        $platform = $this->em->getConnection()->getDatabasePlatform();
        // Drop association tables first
        $orderedTables = $this->getAssociationTables($commitOrder, $platform);
        // Drop tables in reverse commit order
        for ($i = count($commitOrder) - 1; $i >= 0; --$i) {
            $class = $commitOrder[$i];
            if (isset($class->isEmbeddedClass) && $class->isEmbeddedClass || $class->isMappedSuperclass || $class->isInheritanceTypeSingleTable() && $class->name !== $class->rootEntityName) {
                continue;
            }
            $orderedTables[] = $this->getTableName($class, $platform);
        }
        $connection = $this->em->getConnection();
        $filterExpr = $connection->getConfiguration()->getFilterSchemaAssetsExpression();
        $emptyFilterExpression = empty($filterExpr);
        foreach ($orderedTables as $tbl) {
            if (($emptyFilterExpression || preg_match($filterExpr, $tbl)) && array_search($tbl, $this->excluded) === false) {
                if ($this->purgeMode === self::PURGE_MODE_DELETE) {
                    $connection->executeUpdate("DELETE FROM " . $tbl);
                } else {
                    $connection->executeUpdate($platform->getTruncateTableSQL($tbl, true));
                }
            }
        }
    }

Usage Example

 /**
  * @BeforeScenario
  */
 public function purgeDatabase(BeforeScenarioScope $scope)
 {
     $entityManager = $this->get('doctrine.orm.entity_manager');
     $purger = new ORMPurger($entityManager);
     $purger->purge();
     $entityManager->clear();
 }
All Usage Examples Of Doctrine\Common\DataFixtures\Purger\ORMPurger::purge