lifecycleFailureReason; } /** * 실패 사유를 남기고 false 를 반환합니다. * * 수명주기 훅에서 `return $this->failWith(__('...'));` 형태로 사용합니다. * * @param string $reason 운영자에게 보일 실패 사유 (번역된 문장) * @return false 언제나 false */ protected function failWith(string $reason): bool { $this->lifecycleFailureReason = $reason; return false; } /** * 직전 실패 사유를 지웁니다. * * 같은 확장 인스턴스로 수명주기 훅을 다시 부르기 전에 코어가 호출합니다. * 지우지 않으면 이전 실패의 사유가 다음 성공/실패에 그대로 따라붙는다. */ public function clearLifecycleFailureReason(): void { $this->lifecycleFailureReason = null; } }