2012-04-02 2 views
0

Мне было интересно, где именно место размещения App :: import на CakePHP2.Разместить приложение :: Импортировать на CakePHP2.0

Я думал, что лучше использовать его в каждой функции, чтобы не загружать, если другая функция не использует его.

Что-то вроде этого:

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

Вместо того, чтобы использовать импорт в верхней части класса.

Как вы думаете? Спасибо.

ответ

1

Правильное место для приложения :: import: no where! ;)

Вы используете App :: uses() в 2.0 для всех классов приложений (импорт предназначен только для продуктов поставщика). и вы поместите его в самом начале файла (после <?php)

в вашем случае:

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

... 

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

хотя я настоятельно рекомендую внимательно посмотреть на то, что вы там делаете. с использованием другого контроллера в контроллере довольно не правильно - в вашем случае вы, вероятно, захотите импортировать модель и использовать ее метод. контроллеры предназначены только для логики конкретного действия запроса. поместите все другие вещи в модель (толстая модель, тонкий принцип контроллера).

+0

Спасибо за ответ! Могу ли я спросить, почему мы должны использовать его в самом начале, а не когда мы его используем? Разве мы не будем импортировать вещи, которые мы не можем использовать, если не будем называть эту функцию? Спасибо. – Alvaro

+0

Возможно, я ошибаюсь, но я верю, что приложение :: uses() фактически не импортирует файл. Он добавляет файл в список файлов, которые вы можете использовать, и импортирует его только в то время, когда вы на самом деле ссылаетесь на него (ленивая загрузка). – RichardAtHome

+0

точно. вы просто «объявляете» эти файлы. ленивая загрузка, а затем загружает их по мере необходимости - и автоматически. поэтому вы можете поставить их на самый верх. – mark

Смежные вопросы