File Manager Lite
Dir:
/home/codewavebd/public_html/vendor/laravel/framework/src/Illuminate/Pagination
Upload
[..]
AbstractPaginator.php (17.62 KB)
Edit
Rename
Del
Cursor.php (3.36 KB)
Edit
Rename
Del
CursorPaginator.php (5.1 KB)
Edit
Rename
Del
LICENSE.md (1.05 KB)
Edit
Rename
Del
LengthAwarePaginator.php (6.85 KB)
Edit
Rename
Del
PaginationServiceProvider.php (740 B)
Edit
Rename
Del
PaginationState.php (1.01 KB)
Edit
Rename
Del
Paginator.php (4.99 KB)
Edit
Rename
Del
composer.json (902 B)
Edit
Rename
Del
resources/
Rename
Del
Edit: LengthAwarePaginator.php
<?php namespace Illuminate\Pagination; use ArrayAccess; use Countable; use Illuminate\Contracts\Pagination\LengthAwarePaginator as LengthAwarePaginatorContract; use Illuminate\Contracts\Support\Arrayable; use Illuminate\Contracts\Support\Jsonable; use Illuminate\Support\Collection; use IteratorAggregate; use JsonSerializable; /** * @template TKey of array-key * * @template-covariant TValue * * @extends AbstractPaginator<TKey, TValue> * * @implements Arrayable<TKey, TValue> * @implements ArrayAccess<TKey, TValue> * @implements IteratorAggregate<TKey, TValue> * @implements LengthAwarePaginatorContract<TKey, TValue> */ class LengthAwarePaginator extends AbstractPaginator implements Arrayable, ArrayAccess, Countable, IteratorAggregate, Jsonable, JsonSerializable, LengthAwarePaginatorContract { /** * The total number of items before slicing. * * @var int */ protected $total; /** * The last available page. * * @var int */ protected $lastPage; /** * Create a new paginator instance. * * @param Collection<TKey, TValue>|Arrayable<TKey, TValue>|iterable<TKey, TValue>|null $items * @param int $total * @param int $perPage * @param int|null $currentPage * @param array $options (path, query, fragment, pageName) */ public function __construct($items, $total, $perPage, $currentPage = null, array $options = []) { $this->options = $options; foreach ($options as $key => $value) { $this->{$key} = $value; } $this->total = $total; $this->perPage = (int) $perPage; $this->lastPage = max((int) ceil($total / $perPage), 1); $this->path = $this->path !== '/' ? rtrim($this->path, '/') : $this->path; $this->currentPage = $this->setCurrentPage($currentPage, $this->pageName); $this->items = $items instanceof Collection ? $items : new Collection($items); } /** * Get the current page for the request. * * @param int $currentPage * @param string $pageName * @return int */ protected function setCurrentPage($currentPage, $pageName) { $currentPage = $currentPage ?: static::resolveCurrentPage($pageName); return $this->isValidPageNumber($currentPage) ? (int) $currentPage : 1; } /** * Render the paginator using the given view. * * @param string|null $view * @param array $data * @return \Illuminate\Contracts\Support\Htmlable */ public function links($view = null, $data = []) { return $this->render($view, $data); } /** * Render the paginator using the given view. * * @param string|null $view * @param array $data * @return \Illuminate\Contracts\Support\Htmlable */ public function render($view = null, $data = []) { return static::viewFactory()->make($view ?: static::$defaultView, array_merge($data, [ 'paginator' => $this, 'elements' => $this->elements(), ])); } /** * Get the paginator links as a collection (for JSON responses). * * @return \Illuminate\Support\Collection */ public function linkCollection() { return (new Collection($this->elements()))->flatMap(function ($item) { if (! is_array($item)) { return [['url' => null, 'label' => '...', 'active' => false]]; } return (new Collection($item))->map(function ($url, $page) { return [ 'url' => $url, 'label' => (string) $page, 'page' => $page, 'active' => $this->currentPage() === $page, ]; }); })->prepend([ 'url' => $this->previousPageUrl(), 'label' => function_exists('__') ? __('pagination.previous') : 'Previous', 'page' => $this->currentPage() > 1 ? $this->currentPage() - 1 : null, 'active' => false, ])->push([ 'url' => $this->nextPageUrl(), 'label' => function_exists('__') ? __('pagination.next') : 'Next', 'page' => $this->hasMorePages() ? $this->currentPage() + 1 : null, 'active' => false, ]); } /** * Get the array of elements to pass to the view. * * @return array */ protected function elements() { $window = UrlWindow::make($this); return array_filter([ $window['first'], is_array($window['slider']) ? '...' : null, $window['slider'], is_array($window['last']) ? '...' : null, $window['last'], ]); } /** * Get the total number of items being paginated. * * @return int */ public function total() { return $this->total; } /** * Determine if there are more items in the data source. * * @return bool */ public function hasMorePages() { return $this->currentPage() < $this->lastPage(); } /** * Get the URL for the next page. * * @return string|null */ public function nextPageUrl() { if ($this->hasMorePages()) { return $this->url($this->currentPage() + 1); } } /** * Get the last page. * * @return int */ public function lastPage() { return $this->lastPage; } /** * Get the instance as an array. * * @return array */ public function toArray() { return [ 'current_page' => $this->currentPage(), 'data' => $this->items->toArray(), 'first_page_url' => $this->url(1), 'from' => $this->firstItem(), 'last_page' => $this->lastPage(), 'last_page_url' => $this->url($this->lastPage()), 'links' => $this->linkCollection()->toArray(), 'next_page_url' => $this->nextPageUrl(), 'path' => $this->path(), 'per_page' => $this->perPage(), 'prev_page_url' => $this->previousPageUrl(), 'to' => $this->lastItem(), 'total' => $this->total(), ]; } /** * Convert the object into something JSON serializable. * * @return array */ public function jsonSerialize(): array { return $this->toArray(); } /** * Convert the object to its JSON representation. * * @param int $options * @return string */ public function toJson($options = 0) { return json_encode($this->jsonSerialize(), $options); } /** * Convert the object to pretty print formatted JSON. * * @param int $options * @return string */ public function toPrettyJson(int $options = 0) { return $this->toJson(JSON_PRETTY_PRINT | $options); } }
Simpan