Zend FW 1 및 PHPUnit 3.5.15를 사용하고 있습니다.PHPUnit이 호환되지 않는 정적 메소드 선언에 대해 불평하고 있습니다
부모 클래스에서 나는 public static function _doInsert(DomainObject $object)
을 선언하고이를 하위 클래스에서 재정의했습니다.
자식 클래스의 메서드 서명에서 유일한 차이점은 DomainObject
보다 구체적 인 개체 (DomainObjectChild
)를 암시한다는 것입니다. 이것은 내 응용 프로그램이 간다면 오류가있는 PHPUnit 쵸크까지는 제대로 작동하는 것 같습니다. 그것은 자식 클래스의 메서드 선언이 부모 클래스의 선언과 호환되어야한다고 말합니다.
아이디어가 있나요?
감사합니다. Tim, 그 자리에있었습니다. 이 아이디어가 E_STRICT 오류를 발생시키는 이유는 무엇입니까? –
제 생각에 정적 메소드가 진정으로 오버라이드 될 수있는 [후기 정적 바인딩] (http://php.net/manual/en/language.oop5.late-static-bindings.php)을 추가하면 PHP는 서명은 "필요한 경우"와 일치합니다. –