From 5df0639488959de5fbce856697c644a8ccd8e8e1 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mor=C3=A1vek?= Date: Mon, 28 Oct 2024 16:27:39 +0100 Subject: [PATCH] Avoid calling getContext() on presenters not supporting this getter --- src/Kdyby/Autowired/AutowireComponentFactories.php | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Kdyby/Autowired/AutowireComponentFactories.php b/src/Kdyby/Autowired/AutowireComponentFactories.php index 69cbdfb..7979608 100644 --- a/src/Kdyby/Autowired/AutowireComponentFactories.php +++ b/src/Kdyby/Autowired/AutowireComponentFactories.php @@ -24,7 +24,11 @@ trait AutowireComponentFactories protected function getComponentFactoriesLocator(): Nette\DI\Container { if (! isset($this->autowireComponentFactoriesLocator)) { - $this->injectComponentFactories($this->getPresenter()->getContext()); + $presenter = $this->getPresenter(); + if (! method_exists($presenter, 'getContext')) { + throw new InvalidStateException('Cannot get DI Container service - are inject methods allowed?'); + } + $this->injectComponentFactories($presenter->getContext()); } return $this->autowireComponentFactoriesLocator;