У нас есть плагин с крюком postDispatch, используемым для записи статистики использования на CMS, разработанной с использованием ZF1. После создания одной из записей нам нужно получить уникальный идентификатор представления, чтобы иметь возможность обновлять его с помощью запросов AJAX.Невозможно установить переменные вида из postDispatch() в Zend Framework
Несколько сообщений предлагают различные методы для установки переменных вида из функции postDispatch, но ни одна из них не сработала для нас. Все они работают на тесто preDispatch.
Способ 1 от this answer работает на preDispatch, но не на postDispatch.
$view = Zend_Controller_Front::getInstance()
->getParam('bootstrap')
->getResource('view');
$view->recordUID = XXXXXX
То же самое для method 2
$viewRenderer = Zend_Controller_Action_HelperBroker::getStaticHelper('viewRenderer');
if (null === $viewRenderer->view) {
$viewRenderer->initView();
}
$view = $viewRenderer->view;
$view->recordUID = XXXXXX
Другой пользователь предложил в другом месте (не могу найти ссылку сейчас), чтобы использовать Zend's registry, который также работал на preDispatch, но не на postDispatch
Zend_Registry::set('recordUID', 'XXXXXX');
Это казалось бы, объект представления потерян после отправки запроса.
Дополнительная информация
- Вид инициализируется в Bootstrap.php (required for method 1)
- pluggin зарегистрирован в общественных местах \ index.php
- метод, который регистрирует статистику выполняется с помощью функции postDispatch