Skip to content

Commit 91b49b5

Browse files
committed
Update tests and code to support cachable trait
1 parent 1777bb5 commit 91b49b5

File tree

7 files changed

+38
-14
lines changed

7 files changed

+38
-14
lines changed

src/Console/Commands/Flush.php

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
<?php namespace GeneaLabs\LaravelModelCaching\Console\Commands;
22

33
use Illuminate\Console\Command;
4-
use GeneaLabs\LaravelModelCaching\CachedModel;
54

65
class Flush extends Command
76
{
@@ -21,7 +20,7 @@ public function handle()
2120

2221
$model = new $option;
2322

24-
if (! $model instanceof CachedModel) {
23+
if (! method_exists($model, 'flushCache')) {
2524
$this->error("'{$option}' is not an instance of CachedModel.");
2625
$this->line("Only CachedModel instances can be flushed.");
2726

src/Traits/Cachable.php

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,6 +41,10 @@ public function disableCache()
4141

4242
public function flushCache(array $tags = [])
4343
{
44+
if (emptyArray($tags)) {
45+
$tags = $this->makeCacheTags();
46+
}
47+
4448
$this->cache($tags)->flush();
4549
}
4650

@@ -59,8 +63,10 @@ protected function makeCacheKey(
5963

6064
protected function makeCacheTags() : array
6165
{
62-
return (new CacheTags($this->eagerLoad, $this->model))
66+
$tags = (new CacheTags($this->eagerLoad ?? [], $this->model ?? $this))
6367
->make();
68+
69+
return $tags;
6470
}
6571

6672
public static function bootCachable()
@@ -72,6 +78,10 @@ public static function bootCachable()
7278

7379
public static function all($columns = ['*'])
7480
{
81+
if (session('genealabs-laravel-model-caching-is-disabled')) {
82+
return parent::all($columns);
83+
}
84+
7585
$class = get_called_class();
7686
$instance = new $class;
7787
$tags = [str_slug(get_called_class())];

tests/Fixtures/Author.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,15 @@
11
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
22

3-
use GeneaLabs\LaravelModelCaching\CachedModel;
3+
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
44
use Illuminate\Database\Eloquent\Builder;
5+
use Illuminate\Database\Eloquent\Model;
56
use Illuminate\Database\Eloquent\Relations\HasMany;
67
use Illuminate\Database\Eloquent\Relations\HasOne;
78

8-
class Author extends CachedModel
9+
class Author extends Model
910
{
11+
use Cachable;
12+
1013
protected $fillable = [
1114
'name',
1215
'email',

tests/Fixtures/Book.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
22

3-
use GeneaLabs\LaravelModelCaching\CachedModel;
3+
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
4+
use Illuminate\Database\Eloquent\Model;
45
use Illuminate\Database\Eloquent\Relations\BelongsTo;
56
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
67

7-
class Book extends CachedModel
8+
class Book extends Model
89
{
10+
use Cachable;
11+
912
protected $casts = [
1013
'price' => 'float',
1114
];

tests/Fixtures/Profile.php

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,14 @@
11
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
22

3-
use GeneaLabs\LaravelModelCaching\CachedModel;
4-
use Illuminate\Database\Eloquent\Relations\HasMany;
3+
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
4+
use Illuminate\Database\Eloquent\Model;
55
use Illuminate\Database\Eloquent\Relations\BelongsTo;
6+
use Illuminate\Database\Eloquent\Relations\HasMany;
67

7-
class Profile extends CachedModel
8+
class Profile extends Model
89
{
10+
use Cachable;
11+
912
protected $fillable = [
1013
'first_name',
1114
'last_name',

tests/Fixtures/Publisher.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
22

3-
use GeneaLabs\LaravelModelCaching\CachedModel;
3+
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
4+
use Illuminate\Database\Eloquent\Model;
45
use Illuminate\Database\Eloquent\Relations\HasMany;
56

6-
class Publisher extends CachedModel
7+
class Publisher extends Model
78
{
9+
use Cachable;
10+
811
protected $fillable = [
912
'name',
1013
];

tests/Fixtures/Store.php

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,13 @@
11
<?php namespace GeneaLabs\LaravelModelCaching\Tests\Fixtures;
22

3-
use GeneaLabs\LaravelModelCaching\CachedModel;
3+
use GeneaLabs\LaravelModelCaching\Traits\Cachable;
4+
use Illuminate\Database\Eloquent\Model;
45
use Illuminate\Database\Eloquent\Relations\BelongsToMany;
56

6-
class Store extends CachedModel
7+
class Store extends Model
78
{
9+
use Cachable;
10+
811
protected $fillable = [
912
'address',
1013
'name',

0 commit comments

Comments
 (0)