Viewing file: ArraySerializer.php (2.46 KB) -rw-r--r-- Select action/file-type: (+) | (+) | (+) | Code (+) | Session (+) | (+) | SDB (+) | (+) | (+) | (+) | (+) | (+) |
<?php
/* * This file is part of the League\Fractal package. * * (c) Phil Sturgeon <me@philsturgeon.uk> * * For the full copyright and license information, please view the LICENSE * file that was distributed with this source code. */
namespace League\Fractal\Serializer;
use League\Fractal\Pagination\CursorInterface; use League\Fractal\Pagination\PaginatorInterface; use League\Fractal\Resource\ResourceInterface;
class ArraySerializer extends SerializerAbstract { /** * {@inheritDoc} */ public function collection(?string $resourceKey, array $data): array { return [$resourceKey ?: 'data' => $data]; }
/** * {@inheritDoc} */ public function item(?string $resourceKey, array $data): array { return $data; }
/** * {@inheritDoc} */ public function null(): ?array { return []; }
/** * {@inheritDoc} */ public function includedData(ResourceInterface $resource, array $data): array { return $data; }
/** * {@inheritDoc} */ public function meta(array $meta): array { if (empty($meta)) { return []; }
return ['meta' => $meta]; }
/** * {@inheritDoc} */ public function paginator(PaginatorInterface $paginator): array { $currentPage = $paginator->getCurrentPage(); $lastPage = $paginator->getLastPage();
$pagination = [ 'total' => $paginator->getTotal(), 'count' => $paginator->getCount(), 'per_page' => $paginator->getPerPage(), 'current_page' => $currentPage, 'total_pages' => $lastPage, ];
$pagination['links'] = [];
if ($currentPage > 1) { $pagination['links']['previous'] = $paginator->getUrl($currentPage - 1); }
if ($currentPage < $lastPage) { $pagination['links']['next'] = $paginator->getUrl($currentPage + 1); }
if (empty($pagination['links'])) { $pagination['links'] = (object) []; }
return ['pagination' => $pagination]; }
/** * {@inheritDoc} */ public function cursor(CursorInterface $cursor): array { $cursor = [ 'current' => $cursor->getCurrent(), 'prev' => $cursor->getPrev(), 'next' => $cursor->getNext(), 'count' => $cursor->getCount(), ];
return ['cursor' => $cursor]; } }
|