turbolabit / paginatorbundle
dev-main
2024-08-13 09:42 UTC
Requires
- symfony/translation: @stable
Requires (Dev)
- phpunit/phpunit: @stable
- symfony/dotenv: @stable
- symfony/framework-bundle: @stable
- symfony/yaml: @stable
This package is auto-updated.
Last update: 2024-09-13 09:50:56 UTC
README
一个简单的 Symfony 扩展包,用于渲染“经典”分页元素。
它也可以作为一个纯 PHP 对象使用,不依赖于 Symfony。
📦 使用 composer 安装
symfony composer require turbolabit/paginatorbundle:dev-main
🏗️ 使用方法
src/Service/Paginator.php
<?php namespace App\Service; use \TurboLabIt\PaginatorBundle\Service\Paginator as BasePaginator; class Paginator extends BasePaginator { protected string $pageParam = 'p'; protected int $slotNum = 5; }
src/Controller/ListingController.php
<?php namespace App\Controller; use Symfony\Bundle\FrameworkBundle\Controller\AbstractController; use Symfony\Component\HttpFoundation\Response; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\HttpFoundation\RequestStack; use App\Service\Paginator; class ListingController extends AbstractController { protected Request $request; public function __construct(RequestStack $requestStack, protected Paginator $paginator) { $this->request = $requestStack->getCurrentRequest(); } #[Route('/{categorySlug}/', name: 'app_listing', priority: -99)] public function listing(string $categorySlug) : Response { $currentPage = $this->request->get('p') ?? 1; $totalPages = 99; $oPages = $this->paginator ->setBaseUrl('/' . $categorySlug . '/') ->build($currentPage, $totalPages); return $this->render('listing.html.twig', [ 'page' => $currentPage, 'Pages' => $oPages ]); } }
🧪 测试方法
bash scripts/symfony-bundle-tester.sh