File tree Expand file tree Collapse file tree 3 files changed +34
-0
lines changed Expand file tree Collapse file tree 3 files changed +34
-0
lines changed Original file line number Diff line number Diff line change 21
21
"php" : " ^7.3|^8.0"
22
22
},
23
23
"require-dev" : {
24
+ "nesbot/carbon" : " ^2.61" ,
24
25
"pestphp/pest" : " ^1.21.3" ,
25
26
"phpstan/phpstan" : " ^1.8.2" ,
26
27
"symfony/var-dumper" : " ^5.4.11"
Original file line number Diff line number Diff line change 3
3
namespace Laravel \SerializableClosure \Serializers ;
4
4
5
5
use Closure ;
6
+ use DateTimeInterface ;
6
7
use Laravel \SerializableClosure \Contracts \Serializable ;
7
8
use Laravel \SerializableClosure \SerializableClosure ;
8
9
use Laravel \SerializableClosure \Support \ClosureScope ;
@@ -460,6 +461,12 @@ protected function mapByReference(&$data)
460
461
461
462
$ instance = $ data ;
462
463
464
+ if ($ data instanceof DateTimeInterface) {
465
+ $ this ->scope [$ instance ] = $ data ;
466
+
467
+ return ;
468
+ }
469
+
463
470
if ($ data instanceof UnitEnum) {
464
471
$ this ->scope [$ instance ] = $ data ;
465
472
Original file line number Diff line number Diff line change @@ -401,6 +401,32 @@ function () {
401
401
expect ($ f (new Model ))->toBeInstanceOf (Model::class);
402
402
})->with ('serializers ' );
403
403
404
+ test ('serializes carbon objects ' , function () {
405
+ $ carbon = new \Carbon \Carbon ('now ' );
406
+
407
+ $ closure = function () use ($ carbon ) {
408
+ return $ carbon ;
409
+ };
410
+
411
+ $ u = s ($ closure );
412
+ $ r = $ u ();
413
+
414
+ expect ($ r )->toEqual ($ carbon );
415
+ })->with ('serializers ' );
416
+
417
+ test ('serializes carbon immutable objects ' , function () {
418
+ $ carbon = new \Carbon \CarbonImmutable ('now ' );
419
+
420
+ $ closure = function () use ($ carbon ) {
421
+ return $ carbon ;
422
+ };
423
+
424
+ $ u = s ($ closure );
425
+ $ r = $ u ();
426
+
427
+ expect ($ r )->toEqual ($ carbon );
428
+ })->with ('serializers ' );
429
+
404
430
class A
405
431
{
406
432
protected static function aStaticProtected ()
You can’t perform that action at this time.
0 commit comments