В моем приложении 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');