JsonPacker.php 633 B

1234567891011121314151617181920212223242526
  1. <?php
  2. declare(strict_types=1);
  3. namespace Yansongda\Artful\Packer;
  4. use Yansongda\Artful\Contract\PackerInterface;
  5. use Yansongda\Supports\Arr;
  6. use Yansongda\Supports\Collection;
  7. class JsonPacker implements PackerInterface
  8. {
  9. public function pack(null|array|Collection $payload, ?array $params = null): string
  10. {
  11. if (($payload instanceof Collection && $payload->isEmpty()) || empty($payload)) {
  12. return '';
  13. }
  14. return Collection::wrap($payload)->toJson();
  15. }
  16. public function unpack(string $payload, ?array $params = null): ?array
  17. {
  18. return Arr::wrapJson($payload);
  19. }
  20. }