Laavel 소스에서 본 #[ReturnType Will Change] 뭐예요?

2850 단어 Laraveltech

이마


Laavel의 소스에는 #[ReturnTypeWillChange]를 많이 볼 수 있습니다.이것은 Ver8.53.0(2021-08-03) 부근에서 대체로 설치가 완료되었는데 도대체 무엇일까요?
참조:
scrapbox (일본어)
PHP RFC: Add return type declarations for internal methods
GitHub #38221 #38212 #38226 #37838

메시지


글에 무엇이 있는지 참고 링크의 첫 번째 글에서 ReturnType에 관한 내용을 총결하였으니 참고하시기 바랍니다.
중요한 건 PHP8이야.이것은 1에 추가된 기능의 흡판 중 하나로 PHP 내부 방법에 추가된 리턴 type으로 인한 Deprecated 오류를 억제할 수 있다.즉, PHP8.1대책 중 하나.
일반적인 우리로서, 앞으로 예를 들어 Countable을 실현하여count() 방법을 정의할 때
class FooCountable implements Countable
   {
       public function count(): int     // ← ここ : int
       {
           return 1;
       }
   }
하면 됩니다.(PHP5 제외)
다만, 프레임으로는 그래도 안 가는 경우도 있다고 생각한다.
상기 FooCountable는 프레임워크 측으로 이 종류를 계승하고count() 방법을 실행하는 사용자측의 프로그램입니다. 만약 같은 점이 없다면
Fatal error: Declaration of XXX::count() must be compatible with MyCountable::count():
같은 오류가 발생할 수 있습니다. 다른 PHP8.0이 아니면 DateTime | 가짜 같은 것은 지원되지 않습니다 union return types.(두 번째 참고 링크에 쓰여 있다)
따라서 틀에서 #[ReturnTypeWillChange]가 대책을 취하는 것이 현실적인 해결책이다.

잡감


그러고 보니 deprecated의 오류 자체는저번 보도였지만 앞으로의 라벨에서는 억제되었다.
잘못이 있으면 메시지를 남겨 주세요.

좋은 웹페이지 즐겨찾기