2012-01-20 6 views
0

CakePHPフレームワークは階層構造です。私の質問は次のとおりです。CakePHPのクエリ機能はどこに実装されていますか?

(理論上は)データクエリ関数を実装するのに最適な場所はどこですか?モデルやコントローラでは?

「データクエリ機能」とは、getItemsWithSomeInfo($idItem)などの機能、つまりアクションではない機能を意味します。

現在、これらの関数をコントローラに実装していますが、これらの関数(またはメソッド)がモデルレイヤーに実装される他のフレームワークがあると思います。

私はStackoverflowで検索し、同様の問題(Where/how to store custom functions (or methods) in CakePHP)を見つけましたが、(私の意見では)良い答えではありません。

答えて

4

このような機能をモデルの中で次にコントローラに配置する方がよいでしょう。データに関連するすべてのコードがモデルに含まれている必要があります。長い目で見れば、リファクタリングやテストに関しては常に良いアイデアです。あなたはコードを見つける場所を正確に知っています。他のアクション/コントローラにコピー&を貼り付けずに再利用することができます。

+0

こんにちは@Sudhir、私はあなたの答えが好きです、私が期待したものです。しかし、私は確かめるためにいくつかの回答をしたいと思います。ご挨拶! – Lobo

2

あなたが対応するモデルで機能して、あなたのコントローラ内で使用場所:

例:ModelsController.php

Model.phpで

public function getItemsWithSomeInfo($idItem) { 
    // your code 
} 

$this->Model->getItemsWithSomeInfo($id); 
+0

大丈夫、私は正しいと思うし、2つは一致します。 – Lobo

関連する問題