У меня есть адаптер базы данных, который хранится в моем сервис-менеджере под названием «dbAdapter». Я ищу способ отключиться, а затем снова подключиться к этому адаптеру, используя немного другую конфигурацию, возможно, несколько раз.
Причина в том, что у меня много клиентов, структура базы данных которых на 100% одинакова. Я пишу cron-задание, которое будет выполнять maintance в каждой базе данных, но оно должно подключиться к первому, сделать все, удалить соединение и подключиться к следующему … пока он не будет из баз данных.
Я просматривал источник, но я мог найти только один защищенный метод в Zend \ ServiceManager \ ServiceManager.php, называемый unregisterService, который выглядит так, как будто он будет делать то, что я хочу, но это защищенный метод, и поэтому я не могу назвать его из моего контроллер.
Возможно ли «истечь» ключ сервис-менеджера и заставить его воссоздать его при следующем вызове?
Вы можете установить $allowOverride
в true
в ServiceManager
а затем зарегистрировать null
значение под именем dbAdapter
.
$serviceManager->setAllowOverride(true) ->setService('dbAdapter', null) ->setAllowOverride(false);