File tree Expand file tree Collapse file tree 5 files changed +46
-1
lines changed
Expand file tree Collapse file tree 5 files changed +46
-1
lines changed Original file line number Diff line number Diff line change 77use ReflectionClass as PHPReflectionClass ;
88use ReflectionMethod as PHPReflectionMethod ;
99use ReflectionProperty as PHPReflectionProperty ;
10+ use Tempest \Support \HasMemoization ;
1011
1112/**
1213 * @template TClassName of object
Original file line number Diff line number Diff line change 1010use ReflectionMethod as PHPReflectionMethod ;
1111use ReflectionParameter as PHPReflectionParameter ;
1212use ReflectionProperty as PHPReflectionProperty ;
13+ use Tempest \Support \HasMemoization ;
1314
1415trait HasAttributes
1516{
Original file line number Diff line number Diff line change 11<?php
22
3- namespace Tempest \Reflection ;
3+ namespace Tempest \Support ;
44
55use Closure ;
66
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tempest \Support \Tests \Fixtures ;
4+
5+ use Tempest \Support \HasMemoization ;
6+
7+ final class MemoizeClass
8+ {
9+ use HasMemoization;
10+
11+ public int $ counter = 0 ;
12+
13+ public function do (): mixed
14+ {
15+ return $ this ->memoize (
16+ 'key ' ,
17+ function () {
18+ $ this ->counter += 1 ;
19+ return 'value ' ;
20+ }
21+ );
22+ }
23+ }
Original file line number Diff line number Diff line change 1+ <?php
2+
3+ namespace Tempest \Support \Tests ;
4+
5+ use PHPUnit \Framework \TestCase ;
6+ use Tempest \Support \Tests \Fixtures \MemoizeClass ;
7+
8+ final class HasMemoizationTest extends TestCase
9+ {
10+ public function test_memoize (): void
11+ {
12+ $ class = new MemoizeClass ();
13+
14+ $ this ->assertSame ('value ' , $ class ->do ());
15+ $ this ->assertSame (1 , $ class ->counter );
16+ $ this ->assertSame ('value ' , $ class ->do ());
17+ $ this ->assertSame ('value ' , $ class ->do ());
18+ $ this ->assertSame (1 , $ class ->counter );
19+ }
20+ }
You can’t perform that action at this time.
0 commit comments