2012-04-02 7 views
0

Ich frage mich, wo ist der richtige Ort, um die App :: Import auf CakePHP2 zu platzieren.Platzieren von App :: Import auf CakePHP2.0

Ich dachte, dass es besser sein sollte, es in jeder Funktion zu verwenden, um nicht zu laden, wenn eine andere Funktion es nicht verwendet.

Etwas wie folgt aus:

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

Statt den Import an der Spitze der Klasse zu verwenden.

Was denken Sie? Danke.

Antwort

1

der richtige Ort für die App :: Import: no where! ;)

Sie verwenden App :: uses() in 2.0 für alle App-Klassen (Import ist nur für Händler Zeug). und Sie würden es ganz am Anfang der Datei platzieren (nach dem <?php)

in Ihrem Fall:

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

... 

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

obwohl ich empfehle einen genaueren Blick auf das, was Sie dort tun. mit einem anderen Controller in einem Controller ist ziemlich falsch - in Ihrem Fall würden Sie wahrscheinlich ein Modell importieren und seine Methode verwenden möchten. Controller sind nur für die Logik einer bestimmten Anfrage Aktion. legen Sie alle anderen Dinge in das Modell (Fettmodell, Slim-Controller-Prinzip).

+0

Danke für die Antwort! Kann ich fragen, warum sollten wir es am Anfang verwenden und nicht, wenn wir es benutzen? Würden wir nicht Sachen importieren, die wir vielleicht nicht benutzen, wenn wir diese Funktion nicht nennen? Danke. – Alvaro

+0

Ich könnte falsch liegen, aber ich glaube, dass app :: uses() nicht wirklich eine Datei importiert. Sie fügt die Datei zu einer Liste von Dateien hinzu, die Sie möglicherweise verwenden, und importiert sie nur zu der Zeit, zu der Sie sie tatsächlich referenzieren (Lazy Load). – RichardAtHome

+0

genau. Sie deklarieren diese Dateien einfach. Lazy Loading lädt sie dann so schnell wie nötig - und automatisch. deshalb können Sie sie ganz oben setzen. – mark