| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- <?php
- namespace Illuminate\Support;
- use JsonSerializable;
- use Carbon\Carbon as BaseCarbon;
- use Illuminate\Support\Traits\Macroable;
- class Carbon extends BaseCarbon implements JsonSerializable
- {
- use Macroable;
- /**
- * The custom Carbon JSON serializer.
- *
- * @var callable|null
- */
- protected static $serializer;
- /**
- * Prepare the object for JSON serialization.
- *
- * @return array|string
- */
- public function jsonSerialize()
- {
- if (static::$serializer) {
- return call_user_func(static::$serializer, $this);
- }
- $carbon = $this;
- return call_user_func(function () use ($carbon) {
- return get_object_vars($carbon);
- });
- }
- /**
- * JSON serialize all Carbon instances using the given callback.
- *
- * @param callable $callback
- * @return void
- */
- public static function serializeUsing($callback)
- {
- static::$serializer = $callback;
- }
- }
|