Skip to content

Commit 5f538a1

Browse files
committed
Add option to enable SoftDeleteableListener post-flush event
1 parent abea9b4 commit 5f538a1

File tree

4 files changed

+24
-1
lines changed

4 files changed

+24
-1
lines changed

composer.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
],
1414
"require": {
1515
"php": "^8.1",
16-
"gedmo/doctrine-extensions": "^3.20.0",
16+
"gedmo/doctrine-extensions": "^3.21.0",
1717
"symfony/cache": "^6.4 || ^7.0",
1818
"symfony/config": "^6.4 || ^7.0",
1919
"symfony/dependency-injection": "^6.4 || ^7.0",

src/DependencyInjection/Configuration.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ public function getConfigTreeBuilder(): TreeBuilder
2020
->append($this->getVendorNode('orm'))
2121
->append($this->getVendorNode('mongodb'))
2222
->append($this->getClassNode())
23+
->append($this->getSoftDeleteableNode())
2324
->append($this->getUploadableNode())
2425
->children()
2526
->scalarNode('default_locale')
@@ -117,6 +118,21 @@ private function getClassNode(): ArrayNodeDefinition
117118
return $node;
118119
}
119120

121+
private function getSoftDeleteableNode(): ArrayNodeDefinition
122+
{
123+
$treeBuilder = new TreeBuilder('softdeleteable');
124+
$node = $treeBuilder->getRootNode();
125+
126+
$node
127+
->addDefaultsIfNotSet()
128+
->children()
129+
->booleanNode('handle_post_flush_event')->defaultFalse()->end()
130+
->end()
131+
;
132+
133+
return $node;
134+
}
135+
120136
private function getUploadableNode(): ArrayNodeDefinition
121137
{
122138
$treeBuilder = new TreeBuilder('uploadable');

src/DependencyInjection/StofDoctrineExtensionsExtension.php

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,12 @@ public function load(array $configs, ContainerBuilder $container)
113113
$container->setParameter('stof_doctrine_extensions.persist_default_translation', $config['persist_default_translation']);
114114
$container->setParameter('stof_doctrine_extensions.skip_translation_on_load', $config['skip_translation_on_load']);
115115

116+
// Register the softdeleteable configuration if the listener is used
117+
if (isset($loaded['softdeleteable'])) {
118+
$container->getDefinition('stof_doctrine_extensions.listener.softdeleteable')
119+
->replaceArgument(0, $config['softdeleteable']['handle_post_flush_event']);
120+
}
121+
116122
// Register the uploadable configuration if the listener is used
117123
if (isset($loaded['uploadable'])) {
118124
$uploadableConfig = $config['uploadable'];

src/Resources/config/softdeleteable.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@
99
</parameters>
1010
<services>
1111
<service id="stof_doctrine_extensions.listener.softdeleteable" class="%stof_doctrine_extensions.listener.softdeleteable.class%" public="false">
12+
<argument type="abstract">Set in extension</argument>
1213
<call method="setCacheItemPool">
1314
<argument type="service" id="stof_doctrine_extensions.metadata_cache" />
1415
</call>

0 commit comments

Comments
 (0)