Skip to content

Commit 551110f

Browse files
committed
Merge pull request #75 from symfony-cmf/orm_purge_database
Added purgeDatabase method
2 parents 12412e2 + 7f24f6a commit 551110f

File tree

2 files changed

+39
-8
lines changed

2 files changed

+39
-8
lines changed

CHANGELOG.md

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,11 @@
11
Changelog
22
=========
33

4+
dev-master
5+
----------
6+
7+
* **2014-10-06**: Added purgeDatabase method to ORM manager
8+
49
1.2.0-RC1
510
---------
611

src/Functional/DbManager/ORM.php

Lines changed: 34 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@
3232
*/
3333
class ORM
3434
{
35+
/**
36+
* @var ORMExecutor
37+
*/
38+
private $executor;
39+
3540
/**
3641
* @var ContainerInterface
3742
*/
@@ -77,27 +82,31 @@ public function getOm($managerName = null)
7782
return $this->om;
7883
}
7984

85+
/**
86+
* Purge the database
87+
*/
88+
public function purgeDatabase()
89+
{
90+
$referenceRepository = new ProxyReferenceRepository($this->getOm());
91+
$this->getExecutor()->setReferenceRepository($referenceRepository);
92+
$this->getExecutor()->purge();
93+
}
94+
8095
/**
8196
* Loads fixture classes.
8297
*
8398
* @param string[] $classNames
8499
*/
85100
public function loadFixtures(array $classNames)
86101
{
102+
$this->purgeDatabase();
87103
$loader = new ContainerAwareLoader($this->container);;
88-
$purger = new ORMPurger();
89-
$executor = new ORMExecutor($this->getOm(), $purger);
90-
91-
$referenceRepository = new ProxyReferenceRepository($this->getOm());
92-
93-
$executor->setReferenceRepository($referenceRepository);
94-
$executor->purge();
95104

96105
foreach ($classNames as $className) {
97106
$this->loadFixtureClass($loader, $className);
98107
}
99108

100-
$executor->execute($loader->getFixtures(), true);
109+
$this->getExecutor()->execute($loader->getFixtures(), true);
101110
}
102111

103112
/**
@@ -130,4 +139,21 @@ protected function loadFixtureClass(Loader $loader, $className)
130139
}
131140
}
132141
}
142+
143+
/**
144+
* Return the ORM Executor class
145+
*
146+
* @return ORMExecutor
147+
*/
148+
private function getExecutor()
149+
{
150+
if ($this->executor) {
151+
return $this->executor;
152+
}
153+
154+
$purger = new ORMPurger();
155+
$this->executor = new ORMExecutor($this->getOm(), $purger);
156+
157+
return $this->executor;
158+
}
133159
}

0 commit comments

Comments
 (0)