Получить список отправленных в данный момент событий - PullRequest
0 голосов
/ 31 марта 2011

Я знаю, что этот вопрос может показаться странным, но я хотел бы получить список отправленных в данный момент событий. Дело в том, что я ленивый человек и хотел бы проверить, был ли запущен 'checkout_cart_add_product_complete', не создав для него наблюдателя.

Таким образом, идея состоит в том, чтобы получить массив всех отправленных событий и выполнить для него in_array:)

Я думал, что Mage :: getEvents () -> getAllEvents () выдаст некоторую информацию, но он просто возвращает пустой массив.

Я также немного покопался в файлах и папках lib / Varien / Event, но мне не удалось создать наблюдателя программным путем. Да, я знаю, почему быть простым, а можно и сложным? :)

Таким образом, этот главный вопрос (получение списка отправленных событий) скрывает другой (для чистого знания) вопрос: «Как создать наблюдателя программно».

Что ты думаешь?

Большое спасибо!

Ответы [ 2 ]

1 голос
/ 31 марта 2011

Посмотрите на dispatchEvent, и вы увидите, что события загружаются только из разных файлов config.xml через SimpleXML.Я не вижу никакого способа перехватить это, кроме как переопределить Mage_Core_Model_App.

Конечно, не может быть события отправки события, которое создало бы бесконечный цикл, поэтому нет способа наблюдать все события.

Если вам нужно просмотреть события для разработки, я бы посоветовал установить точку останова в dispatchEvent с помощью вашего отладчика, чтобы вы могли видеть не только имена событий, но и объекты, передаваемые в качестве параметров.Я пробовал другими способами до , но для меня это было наиболее удобно.

0 голосов
/ 29 ноября 2012

Мне нужно сделать то же самое, и я думаю, что можно обмануть magento с помощью функции getEventConfig в Mage_Core_Model_Config.Вы можете заставить его автоматически добавить наблюдателя по умолчанию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...