File tree Expand file tree Collapse file tree 7 files changed +38
-14
lines changed Expand file tree Collapse file tree 7 files changed +38
-14
lines changed Original file line number Diff line number Diff line change 1
1
<?php namespace GeneaLabs \LaravelModelCaching \Console \Commands ;
2
2
3
3
use Illuminate \Console \Command ;
4
- use GeneaLabs \LaravelModelCaching \CachedModel ;
5
4
6
5
class Flush extends Command
7
6
{
@@ -21,7 +20,7 @@ public function handle()
21
20
22
21
$ model = new $ option ;
23
22
24
- if (! $ model instanceof CachedModel ) {
23
+ if (! method_exists ( $ model, ' flushCache ' ) ) {
25
24
$ this ->error ("' {$ option }' is not an instance of CachedModel. " );
26
25
$ this ->line ("Only CachedModel instances can be flushed. " );
27
26
Original file line number Diff line number Diff line change @@ -41,6 +41,10 @@ public function disableCache()
41
41
42
42
public function flushCache (array $ tags = [])
43
43
{
44
+ if (emptyArray ($ tags )) {
45
+ $ tags = $ this ->makeCacheTags ();
46
+ }
47
+
44
48
$ this ->cache ($ tags )->flush ();
45
49
}
46
50
@@ -59,8 +63,10 @@ protected function makeCacheKey(
59
63
60
64
protected function makeCacheTags () : array
61
65
{
62
- return (new CacheTags ($ this ->eagerLoad , $ this ->model ))
66
+ $ tags = (new CacheTags ($ this ->eagerLoad ?? [] , $ this ->model ?? $ this ))
63
67
->make ();
68
+
69
+ return $ tags ;
64
70
}
65
71
66
72
public static function bootCachable ()
@@ -72,6 +78,10 @@ public static function bootCachable()
72
78
73
79
public static function all ($ columns = ['* ' ])
74
80
{
81
+ if (session ('genealabs-laravel-model-caching-is-disabled ' )) {
82
+ return parent ::all ($ columns );
83
+ }
84
+
75
85
$ class = get_called_class ();
76
86
$ instance = new $ class ;
77
87
$ tags = [str_slug (get_called_class ())];
Original file line number Diff line number Diff line change 1
1
<?php namespace GeneaLabs \LaravelModelCaching \Tests \Fixtures ;
2
2
3
- use GeneaLabs \LaravelModelCaching \CachedModel ;
3
+ use GeneaLabs \LaravelModelCaching \Traits \ Cachable ;
4
4
use Illuminate \Database \Eloquent \Builder ;
5
+ use Illuminate \Database \Eloquent \Model ;
5
6
use Illuminate \Database \Eloquent \Relations \HasMany ;
6
7
use Illuminate \Database \Eloquent \Relations \HasOne ;
7
8
8
- class Author extends CachedModel
9
+ class Author extends Model
9
10
{
11
+ use Cachable;
12
+
10
13
protected $ fillable = [
11
14
'name ' ,
12
15
'email ' ,
Original file line number Diff line number Diff line change 1
1
<?php namespace GeneaLabs \LaravelModelCaching \Tests \Fixtures ;
2
2
3
- use GeneaLabs \LaravelModelCaching \CachedModel ;
3
+ use GeneaLabs \LaravelModelCaching \Traits \Cachable ;
4
+ use Illuminate \Database \Eloquent \Model ;
4
5
use Illuminate \Database \Eloquent \Relations \BelongsTo ;
5
6
use Illuminate \Database \Eloquent \Relations \BelongsToMany ;
6
7
7
- class Book extends CachedModel
8
+ class Book extends Model
8
9
{
10
+ use Cachable;
11
+
9
12
protected $ casts = [
10
13
'price ' => 'float ' ,
11
14
];
Original file line number Diff line number Diff line change 1
1
<?php namespace GeneaLabs \LaravelModelCaching \Tests \Fixtures ;
2
2
3
- use GeneaLabs \LaravelModelCaching \CachedModel ;
4
- use Illuminate \Database \Eloquent \Relations \ HasMany ;
3
+ use GeneaLabs \LaravelModelCaching \Traits \ Cachable ;
4
+ use Illuminate \Database \Eloquent \Model ;
5
5
use Illuminate \Database \Eloquent \Relations \BelongsTo ;
6
+ use Illuminate \Database \Eloquent \Relations \HasMany ;
6
7
7
- class Profile extends CachedModel
8
+ class Profile extends Model
8
9
{
10
+ use Cachable;
11
+
9
12
protected $ fillable = [
10
13
'first_name ' ,
11
14
'last_name ' ,
Original file line number Diff line number Diff line change 1
1
<?php namespace GeneaLabs \LaravelModelCaching \Tests \Fixtures ;
2
2
3
- use GeneaLabs \LaravelModelCaching \CachedModel ;
3
+ use GeneaLabs \LaravelModelCaching \Traits \Cachable ;
4
+ use Illuminate \Database \Eloquent \Model ;
4
5
use Illuminate \Database \Eloquent \Relations \HasMany ;
5
6
6
- class Publisher extends CachedModel
7
+ class Publisher extends Model
7
8
{
9
+ use Cachable;
10
+
8
11
protected $ fillable = [
9
12
'name ' ,
10
13
];
Original file line number Diff line number Diff line change 1
1
<?php namespace GeneaLabs \LaravelModelCaching \Tests \Fixtures ;
2
2
3
- use GeneaLabs \LaravelModelCaching \CachedModel ;
3
+ use GeneaLabs \LaravelModelCaching \Traits \Cachable ;
4
+ use Illuminate \Database \Eloquent \Model ;
4
5
use Illuminate \Database \Eloquent \Relations \BelongsToMany ;
5
6
6
- class Store extends CachedModel
7
+ class Store extends Model
7
8
{
9
+ use Cachable;
10
+
8
11
protected $ fillable = [
9
12
'address ' ,
10
13
'name ' ,
You can’t perform that action at this time.
0 commit comments