From 6c486305602c09b4f412c67ce32d6686668ed110 Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Mon, 24 Apr 2023 07:42:23 +0200 Subject: [PATCH] [Scheduler] Add the possibility to override the default CallbackTrigger description --- .../Tests/Trigger/CallbackTriggerTest.php | 30 +++++++++++++++++++ .../Scheduler/Trigger/CallbackTrigger.php | 6 ++-- 2 files changed, 34 insertions(+), 2 deletions(-) create mode 100644 src/Symfony/Component/Scheduler/Tests/Trigger/CallbackTriggerTest.php diff --git a/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackTriggerTest.php b/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackTriggerTest.php new file mode 100644 index 0000000000000..608866241ac05 --- /dev/null +++ b/src/Symfony/Component/Scheduler/Tests/Trigger/CallbackTriggerTest.php @@ -0,0 +1,30 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace Symfony\Component\Scheduler\Tests\Trigger; + +use PHPUnit\Framework\TestCase; +use Symfony\Component\Scheduler\Trigger\CallbackTrigger; + +class CallbackTriggerTest extends TestCase +{ + public function testToString() + { + $trigger = new CallbackTrigger(fn () => null); + $this->assertMatchesRegularExpression('/^\d{32}$/', (string) $trigger); + + $trigger = new CallbackTrigger(fn () => null, ''); + $this->assertSame('', (string) $trigger); + + $trigger = new CallbackTrigger(fn () => null, 'foo'); + $this->assertSame('foo', (string) $trigger); + } +} diff --git a/src/Symfony/Component/Scheduler/Trigger/CallbackTrigger.php b/src/Symfony/Component/Scheduler/Trigger/CallbackTrigger.php index 311fc9f2b178c..20dbaa84e42b6 100644 --- a/src/Symfony/Component/Scheduler/Trigger/CallbackTrigger.php +++ b/src/Symfony/Component/Scheduler/Trigger/CallbackTrigger.php @@ -19,15 +19,17 @@ final class CallbackTrigger implements TriggerInterface { private \Closure $callback; + private string $description; - public function __construct(callable $callback) + public function __construct(callable $callback, string $description = null) { $this->callback = $callback(...); + $this->description = $description ?? spl_object_hash($this->callback); } public function __toString(): string { - return spl_object_hash($this->callback); + return $this->description; } public function getNextRunDate(\DateTimeImmutable $run): ?\DateTimeImmutable