2012-04-02 8 views
0

CakePHP2にApp :: importを配置する正しい場所はどこですか?CakePHP2.0にApp :: Importを配置する

私は、別の関数がそれを使用していない場合、読み込まないように各関数で使用する方が良いと考えていました。このような

何か:代わりに、クラスの先頭にインポートを使用しての

public function name(){ 
    App::import('Controller', 'Classifiers'); 
    $classifiersController = new ClassifiersController(); 
    $this->request->data['Post'] = $classifiersController->getIdCategory('hola'); 
} 

あなたはどう思いますか?おかげさまで

答えて

1

app :: importの正しい場所はどこですか? ;)

すべてのアプリケーションクラスに対して、2.0でApp :: uses()を使用します(インポートはベンダーのもののみに適用されます)。 、あなたの場合には(<?php後)、ファイルの最上部に

を置きます:

<?php 
App::uses('ClassifiersController', 'Controller'); 

... 

public function name(){ 
    $classifiersController = new ClassifiersController(); 
    $this->request->data['Post'] = $classifiersController->getIdCategory('hola'); 
} 

私は非常にあなたがそこに何をしているかを詳しく見てとることをお勧めしますが。コントローラー内の別のコントローラーを使用するのはかなり間違っています。おそらく、モデルをインポートしてそのメソッドを使用したいと思うでしょう。コントローラは、特定の要求アクションのロジックのみです。他のすべてのものをモデルに入れます(脂肪モデル、スリムコントローラーの原理)。

+0

ありがとうございます!なぜ私たちはそれを使うのではなく、最初からそれを使うべきか尋ねることができますか?私たちがその機能を呼んでいないと、私たちが使用しないかもしれないものを輸入していませんか?おかげさまで – Alvaro

+0

私は間違っているかもしれませんが、私はApp :: uses()は実際にファイルをインポートしないと信じています。これは、使用する可能性のあるファイルのリストにファイルを追加し、実際に参照するときにインポートするだけです(遅延ロード)。 – RichardAtHome

+0

。あなたはそれらのファイルを単に宣言します。遅延ロードは、必要に応じてすぐにロードします。自動的にロードします。それであなたはそれらを一番上に置くことができます。 – mark

関連する問題