Do you know CakePHP version 3 has a lovely ORM which can be used as standalone?
Thank you José Lorenzo Rodríguez and every contributor, for your hard work.
composer require cakephp/orm
Working on I noticed I need to do some pagination. Oh, remember we have
illuminate/pagination. Why not use it?
Problem, there seems no one have implemented it. How could we achieve it?
Lets do it.
composer require illuminate/pagination
If you are using a psr-7 request / response here is the middleware for you.
use Illuminate\Pagination\Paginator as IlluminatePaginator;
public function __invoke( ServerRequestInterface $request, ResponseInterface $response, callable $next = null )
IlluminatePaginator::currentPageResolver(function ( $pageName = 'page' ) use($request )
$params = $request->getQueryParams();
return empty($params[$pageName]) ? 1 : $params[$pageName];
IlluminatePaginator::currentPathResolver(function () use($request )
return $next($request, $response);
What we did above are a few things for Illuminate to give the url path when
it is doing the pagination. So for example
/article?page=<page-number> will come
instead of just
$table = TableRegistry::get('Articles');
$currentPage = 1;
$perPage = 20;
$query = $table->find('all');
$total = $query->count();
$items = $query->page($currentPage, $perPage);
$paginator = new LengthAwarePaginator($items, $total, $perPage, $currentPage, [
'path' => Paginator::resolveCurrentPath(),
The above code is querying the articles and rendering the pagination with the returned results.
By default the Presenter is
Illuminate\Pagination\BootstrapThreePresenter, but you
can create your own.
I hope you will love the integration.
Thank you everyone for your support and hard work on components to make PHP better every day.