Skip to content

Commit dc33981

Browse files
authored
Merge pull request #27 from chrisryan/master
Add support for PHP 8.x.
2 parents 23706a2 + 4fe6809 commit dc33981

File tree

6 files changed

+24
-20
lines changed

6 files changed

+24
-20
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,15 @@ $compute = function() {
115115
$result = $memoize->memoizeCallable('myLongOperation', $compute);
116116
```
117117

118-
### Never
118+
### None
119119
This memoizer does not actually memoize anything - it always calls the
120120
`$compute` function. It is useful for testing and can also be used when you
121121
disable memoization for debugging, etc. because you can swap your real memoizer
122122
out for this one and everything will still work.
123123

124124
#### Example
125125
```php
126-
$memoize = new \TraderInteractive\Memoize\Never();
126+
$memoize = new \TraderInteractive\Memoize\None();
127127

128128
$compute = function() {
129129
// Perform some long operation that you want to memoize

composer.json

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,20 @@
1414
"sort-packages": true
1515
},
1616
"require": {
17-
"php": "^7.0"
17+
"php": "^7.0 || ^8.0"
1818
},
1919
"require-dev": {
2020
"php-coveralls/php-coveralls": "^1.0",
21-
"phpunit/phpunit": "^6.0",
22-
"predis/predis": "~1.0",
21+
"phpunit/phpunit": "^6.0 || ^7.0 || ^8.0 || ^9.0",
22+
"predis/predis": "^1.0",
2323
"squizlabs/php_codesniffer": "^3.2"
2424
},
2525
"suggest": {
2626
"predis/predis": "Allows for Redis-based memoization."
2727
},
2828
"autoload": {
2929
"psr-4": { "TraderInteractive\\Memoize\\": "src/" }
30-
}
30+
},
3131
"scripts": {
3232
"lint": "vendor/bin/phpcs",
3333
"test": "vendor/bin/phpunit"

phpunit.xml.dist

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
<phpunit colors="true" forceCoversAnnotation="true" strict="true">
1+
<phpunit colors="true" forceCoversAnnotation="true">
22
<testsuite name="Unit Tests">
33
<directory>./tests</directory>
44
</testsuite>

src/Never.php renamed to src/None.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
* A memoizer that never caches and always recomputes the result.
77
* This is useful for turning off memoization (e.g., for debugging).
88
*/
9-
class Never implements Memoize
9+
class None implements Memoize
1010
{
1111
/**
1212
* $cacheTime and $key are ignored - this always calls $compute.

tests/NeverTest.php renamed to tests/NoneTest.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@
55
use PHPUnit\Framework\TestCase;
66

77
/**
8-
* @coversDefaultClass \TraderInteractive\Memoize\Never
8+
* @coversDefaultClass \TraderInteractive\Memoize\None
99
*/
10-
class NeverTest extends TestCase
10+
class NoneTest extends TestCase
1111
{
1212
/**
1313
* @test
@@ -24,7 +24,7 @@ public function memoizeCallableTwice()
2424
return $value;
2525
};
2626

27-
$memoizer = new Never();
27+
$memoizer = new None();
2828

2929
$this->assertSame($value, $memoizer->memoizeCallable($key, $compute));
3030
$this->assertSame($value, $memoizer->memoizeCallable($key, $compute));

tests/PredisTest.php

Lines changed: 13 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,13 +88,15 @@ public function memoizeCallableRefreshRequest()
8888
};
8989

9090
$client = $this->getPredisMock();
91-
$client->expects($this->at(0))->method('get')->with(
91+
$client->expects($this->once())->method('get')->with(
9292
$this->equalTo("{$key}.runtime")
9393
)->will($this->returnValue(.2));
94-
$client->expects($this->at(1))->method('pttl')->with($this->equalTo($key))->will($this->returnValue(10));
95-
$client->expects($this->at(2))->method('set')->with($this->equalTo($key), $this->equalTo($cachedValue));
96-
$client->expects($this->at(3))->method('set')->with($this->equalTo("{$key}.runtime"), $this->lessThan(1));
97-
$client->expects($this->at(4))->method('expire')->with($this->equalTo($key), $this->equalTo($cacheTime));
94+
$client->expects($this->once())->method('pttl')->with($this->equalTo($key))->will($this->returnValue(10));
95+
$client->expects($this->exactly(2))->method('set')->withConsecutive(
96+
[$this->equalTo($key), $this->equalTo($cachedValue)],
97+
[$this->equalTo("{$key}.runtime"), $this->lessThan(1)]
98+
);
99+
$client->expects($this->once())->method('expire')->with($this->equalTo($key), $this->equalTo($cacheTime));
98100

99101
$memoizer = new Predis($client, false, 100);
100102

@@ -121,10 +123,12 @@ public function memoizeCallableWithUncachedKey()
121123
};
122124

123125
$client = $this->getPredisMock();
124-
$client->expects($this->at(0))->method('get')->with($this->equalTo($key))->will($this->returnValue(null));
125-
$client->expects($this->at(1))->method('set')->with($this->equalTo($key), $this->equalTo($cachedValue));
126-
$client->expects($this->at(2))->method('set')->with($this->equalTo("{$key}.runtime"), $this->lessThan(1));
127-
$client->expects($this->at(3))->method('expire')->with($this->equalTo($key), $this->equalTo($cacheTime));
126+
$client->expects($this->once())->method('get')->with($this->equalTo($key))->will($this->returnValue(null));
127+
$client->expects($this->exactly(2))->method('set')->withConsecutive(
128+
[$this->equalTo($key), $this->equalTo($cachedValue)],
129+
[$this->equalTo("{$key}.runtime"), $this->lessThan(1)]
130+
);
131+
$client->expects($this->once())->method('expire')->with($this->equalTo($key), $this->equalTo($cacheTime));
128132

129133
$memoizer = new Predis($client);
130134

0 commit comments

Comments
 (0)