Skip to content

Commit b6770da

Browse files
mabarf3l1x
authored andcommitted
FlushListener
1 parent 3c1f6b2 commit b6770da

5 files changed

Lines changed: 34 additions & 2 deletions

File tree

.docs/README.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,8 @@ Just add annotation `@<Before/Update>` to your entity or to trait which entity u
6969
* @AfterPersist(App\Model\AfterPersistListener)
7070
* @AfterRemove(App\Model\AfterRemoveListener)
7171
* @AfterUpdate(App\Model\AfterUpdateListener)
72-
72+
* @Flush(App\Model\FlushListener)
73+
*
7374
* @Lifecycle(App\Model\LifecycleListener)
7475
*/
7576
class Foo extends Entity

src/DI/NextrasOrmEventsExtension.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
use Contributte\Nextras\Orm\Events\Listeners\BeforePersistListener;
1111
use Contributte\Nextras\Orm\Events\Listeners\BeforeRemoveListener;
1212
use Contributte\Nextras\Orm\Events\Listeners\BeforeUpdateListener;
13+
use Contributte\Nextras\Orm\Events\Listeners\FlushListener;
1314
use Nette\DI\CompilerExtension;
1415
use Nette\DI\Definitions\ServiceDefinition;
1516
use Nette\DI\ServiceCreationException;
@@ -31,6 +32,7 @@ final class NextrasOrmEventsExtension extends CompilerExtension
3132
'onAfterPersist' => AfterPersistListener::class,
3233
'onAfterRemove' => AfterRemoveListener::class,
3334
'onAfterUpdate' => AfterUpdateListener::class,
35+
'onFlush' => FlushListener::class,
3436
],
3537
'BeforeInsert' => [
3638
'onBeforeInsert' => BeforeInsertListener::class,
@@ -56,6 +58,9 @@ final class NextrasOrmEventsExtension extends CompilerExtension
5658
'AfterUpdate' => [
5759
'onAfterUpdate' => AfterUpdateListener::class,
5860
],
61+
'Flush' => [
62+
'onFlush' => FlushListener::class,
63+
],
5964
];
6065

6166
/**

src/Listeners/FlushListener.php

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
<?php declare(strict_types = 1);
2+
3+
namespace Contributte\Nextras\Orm\Events\Listeners;
4+
5+
use Nextras\Orm\Entity\IEntity;
6+
7+
interface FlushListener
8+
{
9+
10+
/**
11+
* @param IEntity[] $persisted
12+
* @param IEntity[] $removed
13+
*/
14+
public function onFlush(array $persisted, array $removed): void;
15+
16+
}

src/Listeners/LifecycleListener.php

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,8 @@ interface LifecycleListener extends
1010
AfterInsertListener,
1111
AfterPersistListener,
1212
AfterRemoveListener,
13-
AfterUpdateListener
13+
AfterUpdateListener,
14+
FlushListener
1415
{
1516

1617
}

tests/fixtures/Mocks/Foo/FooLifecycleListener.php

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,15 @@ public function onBeforeUpdate(IEntity $entity): void
5454
$this->call(__METHOD__, $entity);
5555
}
5656

57+
/**
58+
* @param IEntity[] $persisted
59+
* @param IEntity[] $removed
60+
*/
61+
public function onFlush(array $persisted, array $removed): void
62+
{
63+
// Not implemented
64+
}
65+
5766
public function call(string $method, IEntity $entity): void
5867
{
5968
$method = str_replace(self::class . '::', null, $method);

0 commit comments

Comments
 (0)