File tree Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Expand file tree Collapse file tree 2 files changed +10
-3
lines changed Original file line number Diff line number Diff line change 33namespace CraftCms \DependencyAwareCache \Dependency ;
44
55use Illuminate \Cache \Repository ;
6+ use Laravel \SerializableClosure \SerializableClosure ;
67
78/**
89 * CallbackDependency represents a dependency based on the result of a callback.
1213 */
1314class CallbackDependency extends Dependency
1415{
15- private $ callback ;
16+ private SerializableClosure $ callback ;
1617
1718 public function __construct (callable $ callback )
1819 {
19- $ this ->callback = $ callback ;
20+ $ this ->callback = new SerializableClosure ( $ callback) ;
2021 }
2122
2223 protected function generateData (Repository $ cache ): mixed
2324 {
24- return ( $ this ->callback )($ cache );
25+ return $ this ->callback -> getClosure ( )($ cache );
2526 }
2627}
Original file line number Diff line number Diff line change 3535
3636 expect ($ dependency ->isChanged (DependencyCache::store ()))->toBeTrue ();
3737});
38+
39+ it ('can be serialized ' , function () {
40+ $ dependency = new CallbackDependency (static fn () => '' );
41+
42+ expect (serialize ($ dependency ))->toBeString ();
43+ });
You can’t perform that action at this time.
0 commit comments