Skip to content

Commit f2840a0

Browse files
committed
Add option to enable SoftDeleteableListener post-flush event
1 parent c59abd3 commit f2840a0

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.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@
1111

1212
$container->services()
1313
->set('stof_doctrine_extensions.listener.softdeleteable', param('stof_doctrine_extensions.listener.softdeleteable.class'))
14+
->args([abstract_arg('Set in the extension')])
1415
->call('setCacheItemPool', [service('stof_doctrine_extensions.metadata_cache')])
1516
->call('setClock', [service('clock')->ignoreOnInvalid()])
1617
->call('setAnnotationReader', [service('.stof_doctrine_extensions.reader')->ignoreOnInvalid()])

0 commit comments

Comments
 (0)