Skip to content

Commit b442a68

Browse files
committed
Add model table to cache key
Fixes #192 Fixes #189
1 parent a1c705e commit b442a68

30 files changed

+103
-128
lines changed

composer.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,8 @@
2828
"phpunit/phpunit": "7.*",
2929
"predis/predis": "*",
3030
"sebastian/phpcpd": "*",
31-
"symfony/thanks": "*"
31+
"symfony/thanks": "*",
32+
"codedungeon/phpunit-result-printer": "^0.23.4"
3233
},
3334
"autoload": {
3435
"psr-4": {

src/CacheKey.php

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ public function make(
3030
string $keyDifferentiator = ""
3131
) : string {
3232
$key = $this->getCachePrefix();
33+
$key .= $this->getTableSlug();
3334
$key .= $this->getModelSlug();
3435
$key .= $this->getIdColumn($idColumn ?: "");
3536
$key .= $this->getQueryColumns($columns);
@@ -57,6 +58,12 @@ protected function getLimitClause() : string
5758
return "-limit_{$this->query->limit}";
5859
}
5960

61+
protected function getTableSlug() : string
62+
{
63+
return str_slug($this->model->getTable())
64+
. ":";
65+
}
66+
6067
protected function getModelSlug() : string
6168
{
6269
return str_slug(get_class($this->model));

tests/Integration/CachedBuilder/FindOrFailTest.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,12 @@
1717

1818
class FindOrFailTest extends IntegrationTestCase
1919
{
20-
21-
2220
public function testFindOrFailCachesModels()
2321
{
2422
$author = (new Author)
2523
->findOrFail(1);
2624

27-
$key = sha1('genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor-find_1');
25+
$key = sha1('genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor-find_1');
2826
$tags = [
2927
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
3028
];

tests/Integration/CachedBuilder/FindTest.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,10 @@
1717

1818
class FindTest extends IntegrationTestCase
1919
{
20-
21-
2220
public function testFindModelResultsCreatesCache()
2321
{
2422
$author = collect()->push((new Author)->find(1));
25-
$key = sha1('genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor_1');
23+
$key = sha1('genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor_1');
2624
$tags = [
2725
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
2826
];

tests/Integration/CachedBuilder/ForceDeleteTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@ public function testForceDeleteClearsCache()
2929
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
3030
])
3131
->get(sha1(
32-
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor-id_=_1'
32+
'genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor-id_=_1'
3333
))["value"];
3434

3535
(new Author)
@@ -41,7 +41,7 @@ public function testForceDeleteClearsCache()
4141
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
4242
])
4343
->get(sha1(
44-
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor-id_=_1'
44+
'genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor-id_=_1'
4545
))["value"];
4646

4747
$this->assertEquals(get_class($resultsBefore), get_class($author));

tests/Integration/CachedBuilder/GetTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ public function testGetModelResultsCreatesCache()
2323
{
2424
$authors = (new Author)->with('books', 'profile')
2525
->get();
26-
$key = sha1('genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor-books-profile');
26+
$key = sha1('genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor-books-profile');
2727
$tags = [
2828
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
2929
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesbook',
@@ -58,7 +58,7 @@ public function testAccessingGetResultsViaArrayIndexDoesNotError()
5858

5959
public function testGetWithFieldArrayCachesResults()
6060
{
61-
$key = sha1('genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor_id_name');
61+
$key = sha1('genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor_id_name');
6262
$tags = [
6363
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
6464
];

tests/Integration/CachedBuilder/InRandomOrderQueryTest.php

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -17,8 +17,6 @@
1717

1818
class InRandomOrderQueryTest extends IntegrationTestCase
1919
{
20-
21-
2220
public function testInRandomOrderCachesResults()
2321
{
2422
$cachedBook1 = (new Book)

tests/Integration/CachedBuilder/LazyLoadTest.php

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -17,11 +17,9 @@
1717

1818
abstract class LazyLoadTest extends IntegrationTestCase
1919
{
20-
21-
2220
// public function testLazyLoadingRelationshipQuery()
2321
// {
24-
// $key = sha1('genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesbook-id_<_5');
22+
// $key = sha1('genealabs:laravel-model-caching:testing::memory::books:genealabslaravelmodelcachingtestsfixturesbook-id_<_5');
2523
// $tags = [
2624
// 'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesbook',
2725
// ];

tests/Integration/CachedBuilder/PaginateTest.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,7 +25,7 @@ public function testPaginationIsCached()
2525
$authors = (new Author)
2626
->paginate(3);
2727

28-
$key = sha1('genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor-paginate_by_3_page_1');
28+
$key = sha1('genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor-paginate_by_3_page_1');
2929
$tags = [
3030
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
3131
];
@@ -155,7 +155,7 @@ public function testPaginationWithCustomOptionsReturnsCorrectLinks()
155155

156156
public function testCustomPageNamePagination()
157157
{
158-
$key = sha1('genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor-paginate_by_3_custom-page_1');
158+
$key = sha1('genealabs:laravel-model-caching:testing::memory::authors:genealabslaravelmodelcachingtestsfixturesauthor-paginate_by_3_custom-page_1');
159159
$tags = [
160160
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesauthor',
161161
];

tests/Integration/CachedBuilder/SelectTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ class SelectTest extends IntegrationTestCase
1919
{
2020
public function testSelectWithRawColumns()
2121
{
22-
$key = sha1('genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesbook_orderBy_author_id_asc');
22+
$key = sha1('genealabs:laravel-model-caching:testing::memory::books:genealabslaravelmodelcachingtestsfixturesbook_orderBy_author_id_asc');
2323
$tags = [
2424
'genealabs:laravel-model-caching:testing::memory::genealabslaravelmodelcachingtestsfixturesbook',
2525
];

0 commit comments

Comments
 (0)