なぜ CakePHP の findAll() や findCount() は非推奨になった?
環境
- CakePHP 1.2
疑問
マニュアルによると、モデルの findAll() や findCount() は非推奨になっている。
なぜ非推奨なのだろう?
メモ
- 非推奨となった関数は、手軽に書けるというメリットがある。
- それでも非推奨となったということは、手軽さよりも重複を排除することが大切という考え?
- でも、手軽であることも事実。
- CakePHP も最初は findAll() や findCount() を使っていた。
- ということは「〜でマズい」という何か発見があったはず。
- それは「簡単さより重複排除が大切」という考えだけなのか?
- 他にも理由があるのか?
- なぜ findAllBy() は非推奨にならないのか?
- 便利だからという理由で使ってしまいそうな自分にもう少しブレーキを掛けられる知見が欲しい。
解決
"CakePHP why is findall deprecated" で検索したら、こんなのがあった。
<?php $model->findAll(null, null, null, null, 1, null); ?>findAll is unreadable
名前付き引数にしようよ、ということね。
確かに↑のコードを見て5番目の引数の意味はリファレンスを見ないと分からない。
そして findAllBy() が非推奨になっていない理由も分かる。
findAllBy() は引数の意味について迷うことがないからだ。