Создание экземпляра класса поставщика в конструкторе класса

В моем приложении CakePHP 2 у меня есть такой поставщик. Мне нужно создать экземпляр этого класса поставщика внутри моего класса контроллера. Поэтому я буду использовать этот экземпляр внутри разных функций моего контроллера.

App::import('Vendor', 'fancyVendor', array('file' => 'fancyVendor.php')); class MyController extends AppController { public $fancyVendor; function beforeFilter() { $fancyVendor = new fancyVendor(); $fancyVendor->setValue("12"); } function showMe() { echo $fancyVendor->getValue(); } } 

Внутри моей функции showMe я не могу получить значение, которое я установил в моей функции beforeFilter . Есть ли способ создать экземпляр?

Вам нужно узнать о сфере охвата . Вы инициализировали переменную в области beforeFilter() а затем пытались использовать ее в области showMe . Они совершенно разные.

Вы можете создать переменную, которая привязана ко всему классу, обычно называемая свойством …

 function beforeFilter() { $this->fancyVendor = new fancyVendor(); $this->fancyVendor->setValue("12"); } function showMe() { echo $this->fancyVendor->getValue(); } 

Еще один момент, чтобы отметить, что вы можете использовать метод App::uses() для загрузки класса. По твоему названию это сработает. (класс ленивый загружен таким образом)

 App::uses('fancyVendor', 'Vendor');