나는 PSR-7UriInterface의 구현 작업을하고 있으며 구현시 일부 구성 요소에 대해 InvalidArgumentException을 throw해야하는시기에 대해서는 약간의 혼란이 있습니다.PSR-7 UriInterface - 유효하지 않은 구성 요소 백분율 인코딩
예 : UriInterface::withPath specifies throwing such an exception given an invalid path하지만 "구현으로 올바른 인코딩이 보장되므로"사용자는 인코딩 된 경로 문자와 디코딩 된 경로 문자를 모두 제공 할 수 있습니다.
/**
* ...
*
* Users can provide both encoded and decoded path characters.
* Implementations ensure the correct encoding as outlined in getPath().
*
* @param string $path The path to use with the new instance.
* @return static A new instance with the specified path.
* @throws \InvalidArgumentException for invalid paths.
*/
인코딩을 관리해야하는 구현은 나머지 사양에서 다루어집니다.
구현시 올바른 인코딩이 보장되므로 구현 사용자가 달리 유효하지 않은 문자를 withPath와 같은 함수에 전달할 수 있으므로 예외를 트리거하는 것이 아니라 올바르게 인코딩됩니다.
withPath에 문자열이 전달되지 않은 경우 해당 값이 Guzzle's interpretation of the specification 인 것처럼 보이는 경우에만 InvalidArgumentException이 발생한다고 생각할 수 있습니다.
PHP's brief introduction of InvalidArgumentException의 엄격한 읽기는 이런 종류의 "엄격한 타이핑"해석을 피하는 것처럼 보일 수 있지만, PHP-FIG가 다른 점을 염두에두고 있는지, 특히 URI 구문의 복잡성을 고려하면 궁금합니다. 일반적으로
withPath와 같은 UriInterface 메서드가 문자열을 전달하는 경우 예외를 throw해야하는 시나리오가 있습니까?