매장 프론트엔드:관찰할 수 있는 첫 번째 사건은 무엇입니까?
-
12-12-2019 - |
문제
현재 바닐라 Magento 1.9.1(CE) 또는 1.14.1/1.14.2(EE)의 경우 첫 번째 관찰할 수 있는 사건?
- 프런트엔드의 경우(경유
/index.php
;설치 프로그램이 이미 실행되었을 때) - 프런트엔드의 경우 설치 프로그램이 아직 실행되지 않은 경우(차이가 있는 경우)
- 관리자를 위한 HTML
- 크론에서
- 웹 서비스 API 1에서
- 웹 서비스 API 2에서
(이 질문은 순수한 사실을 찾는 것일 수도 있지만 Magento 1의 범위에서 더 흥미로운 것은 코드에서 이러한 이벤트를 찾는 방법입니다.)
더 많은 정보를 찾는 과정에서 몇 가지 웹 리소스를 수집했습니다.
- Magento가 가장 먼저 전달하는 이벤트는 무엇입니까? (2011년 6월 Q&A)
- Magento 스타트업 이벤트 (2012년 9월;앨런 스톰 지음)
- Magento에서 가장 먼저 실행되는 이벤트는 무엇입니까? - (2014년 4월;안녕.슈라데)
해결책
다음과 같이 이러한 이벤트를 직접 관찰할 수 있습니다.
/app/Mage.php 수정 dispatchEvent()
아래와 같이 기능합니다:
/**
* Dispatch event
*
* Calls all observer callbacks registered for this event
* and multiple observers matching event name pattern
*
* @param string $name
* @param array $data
* @return Mage_Core_Model_App
*/
public static function dispatchEvent($name, array $data = array())
{
Mage::log($name, null, 'events.log', true); //add this line
Varien_Profiler::start('DISPATCH EVENT:'.$name);
$result = self::app()->dispatchEvent($name, $data);
Varien_Profiler::stop('DISPATCH EVENT:'.$name);
return $result;
}
이제 페이지를 실행하면 다음을 알 수 있습니다. /var/log/events.log
관찰하고 싶은 페이지를 로드할 때 모든 이벤트를 순서대로 기록합니다.
올바른 이벤트를 기록하고 있는지 확인하려면 사이트를 사용하는 유일한 사람인 준비 환경에서 이 작업을 수행해야 합니다.
기록된 첫 번째 이벤트가 항상 가장 먼저 실행되는 이벤트가 되도록 각 페이지를 개별적으로 관찰한 후 로그 파일을 정리하십시오.
제휴하지 않습니다 magento.stackexchange