Я сталкивался с подобными проблемами в Stackoverflow, но ни один из этих ответов не помог мне (включая очистку кэша, очистку систем кэширования кода операции PHP, деактивацию и повторную активацию расширения). Надеюсь, кто-то может указать мне правильное направление.
Я запускаю запланированную команду для расширения. В какой-то момент моей команде нужно будет вызвать метод test () из класса MyController.
Я пытался создать ссылку на класс с помощью вызова наследования И ВСЕМИ методами внедрения, но независимо от того, каким образом я это пробую, всегда возникает одна и та же проблема ...:
Call to a member function test() on null
Совсем недавно я использовал метод впрыска, который не рекомендуется, но он упрощает мой пример ниже, поэтому я буду использовать его сейчас. (VendorName и ExtensionName являются фиктивными именами obvs):
* @var \VendorName\ExtensionName\Controller\MyController
* @inject
*/
protected $mc;
public function myCommand()
{
return $this->mc->test(); //should return true
}
... и внутри MyController
public function test()
{
return true;
}