사용자 정의 오류 처리를 수행해야합니다. 우리는 직접 symfony 사용자 지정 액션을 구현했습니다. 조심하십시오.이 액션 자체가 예외를 유발할 수도 있습니다.이를 고려해야합니다.
다음은 좋은 시작일 수 있습니다. 당신을 제외하고 수행 할 작업을 충분 수있는 이벤트 핸들러를 사용
이
$this->dispatcher->connect('application.throw_exception', array('MyClass', 'handleException'));
, 예를 들어 방금 메일하려는 경우 : 먼저 이벤트에 대한 리스너를 추가, 좋은 장소는 ProjectConfiguration.class.php 것 관리자에게 스택 추적. 우리는 피드백 양식을 표시하고 처리하기위한 맞춤 작업을 진행하고자했습니다. 우리의 이벤트 핸들러는 다음과 같이보고 :
class MyClass {
public static function handleException(sfEvent $event) {
$moduleName = sfConfig::get('sf_error_500_module', 'error');
$actionName = sfConfig::get('sf_error_500_action', 'error500');
sfContext::getInstance()->getRequest()->addRequestParameters(array('exception' => $event->getSubject()));
$event->setReturnValue(true);
sfContext::getInstance()->getController()->forward($moduleName, $actionName);
}
}
당신은 지금 당신이 지금 할 수있는 작업 자체에서 settings.yml
all:
.actions:
error_500_module: error
error_500_action: error500
에서 예외에에 전달하는 모듈 및 작업을 구성 할 수 있습니다 당신이 무엇을 예를 들면 예외가 필요하다. 피드백 양식을 표시하여 관리자에게 문의하십시오. $ request-> getParameter ('exception')을 사용하여 예외를 얻을 수 있습니다.
+1 감사합니다. Google 시스템은 테마 지정 기능을 지원하며이 기능이 없으면 500 페이지 분량의 테마를 지원할 수 없었습니다. 매우 감사. – flu
답변 해 주셔서 감사합니다! 커스텀 함수를'application.throw_exception'에 연결하면 * 해당 심포니의 기본 동작을 덮어 씁니까? 그렇다면 custom 함수 내에서'self :: parent()'를 호출하는 것을 막을 수 있습니까? 그냥 일부 기능을 추가하고 싶습니다. – Tapper
@Tapper 반환 값을 수정하여 $ event-> setReturnValue (false)를 대신 수행 할 수 있습니다. – Gerry