serviceLocator является нулевым

class CustomSawException extends Exception implements ServiceLocatorAwareInterface, SawExceptionInterface
{
protected $serviceLocator;

public function test(){
$this->serviceLocator->get('SomeThing');
}

/**
* Set service locator
*
* @param ServiceLocatorInterface $serviceLocator
*/
public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
{
$this->serviceLocator = $serviceLocator;
}

/**
* Get service locator
*
* @return ServiceLocatorInterface
*/
public function getServiceLocator()
{
return $this->serviceLocator;
}

Исключение, которое выдается за это:

вызов get () на ноль

Я не мог понять, почему это исключение?
ServiceLocatorAwareInterface должен был ввести ServiceLocator?

1

Решение

ServiceLocatorAwareInterface должен был ввести ServiceLocator?

Я не уверен в этом, в последних версиях ZF2 этот интерфейс устарел.

Читайте также этот пост на GitHub или же этот вопрос для дополнительной информации.

1

Другие решения

Я думаю, что это происходит потому, что вы не используете ServiceManager создать экземпляр этого сервиса.

ServiceLocatorAwareInterface работает только если эта услуга вызывается через ServiceManager,

Если вы используете

new CustomSawException();

За пределами ServiceManager AwareInterface не может установить ServiceLocator.

Вы должны объявить эту службу как активируемую, если она не имеет зависимостей, или фабрики в другом случае.

1

По вопросам рекламы [email protected]