by ryou

CakePHP3のページネーションが気持ち悪い

CakePHP3のドキュメントを読み進めていたのですが、個人的にページネーションの実装が気持ち悪く感じました。

どこが気持ち悪いかというと、下の公式ドキュメントのコード例にコメントで書きました。

class ArticlesController extends AppController
{
    /*
     * ここが気持ち悪い
     * ページネーションの設定を、Controllerのメンバ変数で
     * 定義するというのにかなり違和感を感じる。
     */
    public $paginate = [
        'limit' => 25,
        'order' => [
            'Articles.title' => 'asc'
        ]
    ];

    public function initialize()
    {
        parent::initialize();
        $this->loadComponent('Paginator');
    }
}

上の通り、ページネーションの設定をControllerのメンバ変数で定義するのに違和感があります。

普通にpaginateメソッドの呼び出し時に引数としてオプションを渡すような設計ではいけなかったのかと疑問が残りました。