2012-04-02 64 views
0

配售應用::導入我想知道哪裏是正確的位置上放置CakePHP2在App ::進口。上CakePHP2.0

我想它應該會更好,以便使用它在每一個功能,如果沒有其他功能犯規用它來裝載。

事情是這樣的:

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

除了使用進口在班上名列前茅的。

您認爲如何? 謝謝。

回答

1

的應用::導入正確的地方:任何地方! ;)

您使用App ::使用()在2.0所有應用類(進口只對供應商的東西)。 和你把它放在你的文件的最頂端(在<?php後)

你的情況:

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

... 

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

雖然我強烈建議把你在做什麼,有沒有仔細看。 使用一個控制器中的另一個控制器是非常錯誤的 - 在你的情況,你可能會想導入模型,並使用它的方法。控制器僅適用於特定請求操作的邏輯。將所有其他東西放在模型中(胖模型,纖細控制器原理)。

+0

感謝您的回答!我可以問爲什麼我們應該在開始時使用它,而不是在使用它時?如果我們不調用該函數,我們不會導入我們可能不會使用的東西嗎? 謝謝。 – Alvaro 2012-04-02 15:34:22

+0

我可能是錯的,但我相信App :: uses()並不實際導入文件。它將文件添加到您可能使用的文件列表中,並且只在您實際引用它時導入它(延遲加載)。 – RichardAtHome 2012-04-02 16:15:59

+0

。你只需「聲明」這些文件。延遲加載然後在需要時自動加載它們。這就是爲什麼你可以把它們放在最上面。 – mark 2012-04-02 16:28:03