최근에 로컬 사이트의 페이지가 실행을위한 제한 시간 인 30 초를 초과했습니다. 이것은 Common 클래스의 소멸자에 의해 발생합니다.이 클래스에서 모든 DB 모델이 코드를 상속합니다. 나는 그 문제가 코드에서 함수라고 생각했지만 아니었다. __destruct 메서드 코드() :PHP 소멸자가 시간 제한을 초과했습니다.
public function __destruct() {
foreach(get_class_vars(get_class($this)) as $varName=>$varValue) {
$this->$varName = null;
}
}
나는 foreach를 주석 처리했으며 성공하지 못했습니다. 제한 시간을 초과했습니다. 필자는이 방법을 사용하여 페이지를 정상적으로로드하게했습니다.
순간을 초월하는 시간까지 방법의 52 건의 전화가있었습니다. 코드가없는 메소드가 실행하는 데 시간이 오래 걸리면 어떻게 될까요?
문제를 재현하는 전체 (작은/최소) 스크립트를 만들 수 있습니까? –
@KarolyHorvath, 재현하려고했지만 실패했습니다. – SpartakusMd
@SpartakusMd 테스트 케이스를 처음부터 빌드 할 수 없다면 다른 방향으로 가야합니다. 버그를 보존하면서 현재 스크립트에서 가능한 한 많은 코드를 삭제하십시오. 궁극적으로 스크립트를 최소한의 테스트 케이스로 정리할 것입니다. 개인적으로, 나는 그것을보고 매우 관심이 있습니다. –