2014-06-18 4 views
1

최근에 로컬 사이트의 페이지가 실행을위한 제한 시간 인 30 초를 초과했습니다. 이것은 Common 클래스의 소멸자에 의해 발생합니다.이 클래스에서 모든 DB 모델이 코드를 상속합니다. 나는 그 문제가 코드에서 함수라고 생각했지만 아니었다. __destruct 메서드 코드() :PHP 소멸자가 시간 제한을 초과했습니다.

public function __destruct() { 
    foreach(get_class_vars(get_class($this)) as $varName=>$varValue) { 
     $this->$varName = null; 
    } 
} 

나는 foreach를 주석 처리했으며 성공하지 못했습니다. 제한 시간을 초과했습니다. 필자는이 방법을 사용하여 페이지를 정상적으로로드하게했습니다.

순간을 초월하는 시간까지 방법의 52 건의 전화가있었습니다. 코드가없는 메소드가 실행하는 데 시간이 오래 걸리면 어떻게 될까요?

+0

문제를 재현하는 전체 (작은/최소) 스크립트를 만들 수 있습니까? –

+0

@KarolyHorvath, 재현하려고했지만 실패했습니다. – SpartakusMd

+0

@SpartakusMd 테스트 케이스를 처음부터 빌드 할 수 없다면 다른 방향으로 가야합니다. 버그를 보존하면서 현재 스크립트에서 가능한 한 많은 코드를 삭제하십시오. 궁극적으로 스크립트를 최소한의 테스트 케이스로 정리할 것입니다. 개인적으로, 나는 그것을보고 매우 관심이 있습니다. –

답변

3

이 작업을 수행 할 필요가 없습니다. PHP가이 작업을 수행합니다.

+1

사실 & 좋은 충고. 실제로 실제 질문을 다루지는 않습니다. –

+1

이렇게 생각해야하고,이 경우에는 대답이 아닌 것으로 생각해야합니다. (아무도이 코드를 복사해서는 안되기 때문에) – hek2mgl

관련 문제