Skip to content

Commit

Permalink
Add configuration setting for transactional flush (#2587)
Browse files Browse the repository at this point in the history
* Add configuration setting for transactional flush

* Use classic setters for transactional flush setting
  • Loading branch information
alcaeus committed Jan 8, 2024
1 parent d113b66 commit f02bf21
Show file tree
Hide file tree
Showing 2 changed files with 26 additions and 0 deletions.
13 changes: 13 additions & 0 deletions lib/Doctrine/ODM/MongoDB/Configuration.php
Original file line number Diff line number Diff line change
Expand Up @@ -94,6 +94,7 @@ class Configuration
* defaultGridFSRepositoryClassName?: class-string<GridFSRepository<object>>,
* defaultDB?: string,
* documentNamespaces?: array<string, string>,
* enableTransactionalFlush?: bool,
* filters?: array<string, array{
* class: class-string,
* parameters: array<string, mixed>
Expand All @@ -117,6 +118,8 @@ class Configuration

private int $autoGenerateProxyClasses = self::AUTOGENERATE_EVAL;

private bool $useTransactionalFlush = false;

public function __construct()
{
$this->proxyManagerConfiguration = new ProxyManagerConfiguration();
Expand Down Expand Up @@ -596,6 +599,16 @@ public function getProxyManagerConfiguration(): ProxyManagerConfiguration
{
return $this->proxyManagerConfiguration;
}

public function setUseTransactionalFlush(bool $useTransactionalFlush): void
{
$this->useTransactionalFlush = $useTransactionalFlush;
}

public function isTransactionalFlushEnabled(): bool
{
return $this->useTransactionalFlush;
}
}

interface_exists(MappingDriver::class);
13 changes: 13 additions & 0 deletions tests/Doctrine/ODM/MongoDB/Tests/ConfigurationTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -27,4 +27,17 @@ public function testDefaultPersistentCollectionGenerator(): void
self::assertInstanceOf(PersistentCollectionGenerator::class, $generator);
self::assertSame($generator, $c->getPersistentCollectionGenerator());
}

public function testEnableTransactionalFlush(): void
{
$c = new Configuration();

self::assertFalse($c->isTransactionalFlushEnabled(), 'Transactional flush is disabled by default');

$c->setUseTransactionalFlush(true);
self::assertTrue($c->isTransactionalFlushEnabled(), 'Transactional flush is enabled after setTransactionalFlush(true)');

$c->setUseTransactionalFlush(false);
self::assertFalse($c->isTransactionalFlushEnabled(), 'Transactional flush is disabled after setTransactionalFlush(false)');
}
}

0 comments on commit f02bf21

Please sign in to comment.