Как использовать Zend Framework Locator в модели? У меня есть класс, в котором я хотел бы использовать модель Table Gateway. Я последовал примеру альбома и хотел бы получить доступ к таблице за пределами контроллера. Однако, если я копирую и вставляю код из контроллера в класс, в котором я нуждаюсь, я получаю сообщение об ошибке (неопределенный метод: getServiceLocator()). Как использовать этот «класс» вне контроллера?Как использовать serviceLocator вне контроллера
В конце я хотел бы получить доступ к функциям в «классе AlbumTable» в чем-то другом, кроме контроллера (в данном случае другого класса). Благодарю.
class Calendar implements ServiceLocatorAwareInterface{
protected $serviceLocator;
public function setServiceLocator(ServiceLocatorInterface $serviceLocator)
{
$this->serviceLocator = $serviceLocator;
}
public function getServiceLocator()
{
return $this->serviceLocator;
}
/*
* Create Calendar Sync Table
*/
public function getCalendarSyncTable()
{
if (!$this->calendarSyncTable) {
$sm = $this->getServiceLocator();
$this->calendarSyncTable = $sm->get('Pro\Model\CalendarSync\CalendarSyncTable');
}
return $this->calendarSyncTable;
}
Необходимо, чтобы изменить то, как я назвал его в контроллере
$calendar = $this->getServiceLocator()>get('Pro\Model\GoogleCalendar\Calendar');
[Возможный дубликат] (http://stackoverflow.com/questions/12770966/service-locator-in-zend-framework-2) – AlexP