私はクラスメソッドをチェーンする方法を知っています(「return $this」とすべてを使用)が、私がやろうとしているのは、スマートな方法でそれらをチェーンすることです。これを見てください:
$albums = $db->select('albums')->where('x', '>', '20')->limit(2)->order('desc');
このコード サンプルから理解できることは、最初の 3 つのメソッド (select、where、limit) が実行されるクエリ ステートメントを作成し、最後のメソッド (order) がステートメントを終了してから実行し、それをスローすることです。結果ですよね?
しかし、これは当てはまりません。なぜなら、これらのメソッドのいずれか (もちろん「選択」を除く) を簡単にドロップしたり、さらに重要なことに、それらの順序を変更したりしても、何も問題が発生しないからです !! つまり、メソッド「select」が作業を処理しますよね?次に、メソッド「select」がすでに呼び出された後、他の3つのメソッドがクエリステートメントにどのように追加/影響するか!??