キュアセブン技術ブログ

考えたこと,学んだことを書きます

cakephp3.0のpaginateを読んでみた

OSSコードリーディング会と称して id:cocoeyes02 さんとcakeのページネーション読んだのでメモっとく

speakerdeck.com

これに従って行った

ドキュメント読んでみる

https://book.cakephp.org/3/ja/controllers/components/pagination.html

【CakePHP入門】Pagenation(ページネーション)の使い方 | 侍エンジニア塾ブログ(Samurai Blog) - プログラミング入門者向けサイト

  • PaginatorComprtnentを読んでくる
  • 全検索
  • ページねーと変数に設定追加 $paginate
    • sort
    • direction
    • limit
    • page
  • PaginatorHelper
  • $this->paginate()何が渡されるの?
    • なんでも渡せるぞい
// クエリー(検索結果)を用いる場合
$comments = $this->paginate($commentsTable->find());

// モデル名を用いる場合
$comments = $this->paginate('Comments');

// テーブルオブジェクトを用いる場合
$comments = $this->paginate($commentTable);
  • 複数クエリーのページネーション
    • 複数クエリでページネーションすることとかあるん?使用例わからん

3系読む

3.0を読んだ
コメントを書きながら読み進めていった

4系で何か変わった?

cakephp/Paginator.php at 4.x · cakephp/cakephp · GitHub

  • 関数に切り出された
  • RepositoryInterfaceかQueryInterfaceじゃないときの例外が追加された
  • そんなに変わってない〜

使いやすくするためにどうしてるか調べる必要

paginateメソッドを読んでもページネート変数 $paginate がどう使われているのかわからなかったので調べる必要があると思った。paginateメソッド以外のどこをみたらいいのか見通しが立たないので次のリーディングではそこを調査するところから。