cakephp3.0のpaginateを読んでみた
OSSコードリーディング会と称して id:cocoeyes02 さんとcakeのページネーション読んだのでメモっとく
これに従って行った
ドキュメント読んでみる
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を読んだ
コメントを書きながら読み進めていった
- paginate内部の処理はわかった
- 3.8
- \Cake\Datasource\Paginatorに移動してる
- https://github.com/cakephp/cakephp/blob/3.x/src/Datasource/Paginator.php#L183
4系で何か変わった?
cakephp/Paginator.php at 4.x · cakephp/cakephp · GitHub
- 関数に切り出された
- RepositoryInterfaceかQueryInterfaceじゃないときの例外が追加された
- そんなに変わってない〜
使いやすくするためにどうしてるか調べる必要
paginateメソッドを読んでもページネート変数 $paginate
がどう使われているのかわからなかったので調べる必要があると思った。paginateメソッド以外のどこをみたらいいのか見通しが立たないので次のリーディングではそこを調査するところから。