Как да импортирам клас в контролер на 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