Как импортировать класс в контроллер CakePHP 2.0?

Я использую CakePHP. Я создал внешний класс, который не является ни моделью, ни контроллером. Структура класса выглядит так

class UploadImage{
    function sayHello(){
       return "hahaha";
   }
}

Я сохранил класс в папке App->Lib и назвал его UploadImage.php.

Я хотел вызвать метод sayHello() в моем контроллере, который:

class ContentsController extends AppController {

    public $helpers = array('Html', 'Form');

    public function index() {
        $test = App::uses('UploadImage','Lib');
        debug($test->sayHello());
    }
}

Теперь, когда я запускаю вышеуказанную страницу, я получаю следующую ошибку:

Ошибка: вызов функции-члена sayHello() для не-объекта


person madi    schedule 05.07.2012    source источник


Ответы (1)


App::uses() — это оператор, который вы размещаете в начале файла.

вам все еще нужно программировать на php5 - это означает, что вы должны использовать new!

App::uses('UploadImage','Lib');
class ContentsController extends AppController {}

и в вашем методе:

$test = new UploadImage();
person mark    schedule 05.07.2012
comment
Я пытался, но теперь он показывает другую ошибку: класс «UploadImage» не найден, когда класс находится в папке app->Lib - person madi; 05.07.2012
comment
@madi У меня точно такая же проблема, как и у тебя. Основываясь на этом ответе, а также на руководстве, то, что здесь указано, должно работать. Любая причина, почему это не так? - person usumoio; 19.05.2013
comment
Вы должны поставить это как первую строку - person madi; 23.05.2013