12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758 |
- <?php
- namespace Doctrine\Common\DataFixtures\Purger;
- use Doctrine\ODM\MongoDB\DocumentManager;
- /**
- * Class responsible for purging databases of data before reloading data fixtures.
- *
- * @author Jonathan H. Wage <jonwage@gmail.com>
- */
- class MongoDBPurger implements PurgerInterface
- {
- /** DocumentManager instance used for persistence. */
- private $dm;
- /**
- * Construct new purger instance.
- *
- * @param DocumentManager $dm DocumentManager instance used for persistence.
- */
- public function __construct(DocumentManager $dm = null)
- {
- $this->dm = $dm;
- }
- /**
- * Set the DocumentManager instance this purger instance should use.
- *
- * @param DocumentManager $dm
- */
- public function setDocumentManager(DocumentManager $dm)
- {
- $this->dm = $dm;
- }
- /**
- * Retrieve the DocumentManager instance this purger instance is using.
- *
- * @return \Doctrine\ODM\MongoDB\DocumentManager
- */
- public function getObjectManager()
- {
- return $this->dm;
- }
- /** @inheritDoc */
- public function purge()
- {
- $metadatas = $this->dm->getMetadataFactory()->getAllMetadata();
- foreach ($metadatas as $metadata) {
- if ( ! $metadata->isMappedSuperclass) {
- $this->dm->getDocumentCollection($metadata->name)->drop();
- }
- }
- $this->dm->getSchemaManager()->ensureIndexes();
- }
- }
|