| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152 | <?phpdeclare(strict_types=1);namespace GuzzleHttp\Psr7;use Psr\Http\Message\UriInterface;/** * Provides methods to determine if a modified URL should be considered cross-origin. * * @author Graham Campbell */final class UriComparator{    /**     * Determines if a modified URL should be considered cross-origin with     * respect to an original URL.     */    public static function isCrossOrigin(UriInterface $original, UriInterface $modified): bool    {        if (\strcasecmp($original->getHost(), $modified->getHost()) !== 0) {            return true;        }        if ($original->getScheme() !== $modified->getScheme()) {            return true;        }        if (self::computePort($original) !== self::computePort($modified)) {            return true;        }        return false;    }    private static function computePort(UriInterface $uri): int    {        $port = $uri->getPort();        if (null !== $port) {            return $port;        }        return 'https' === $uri->getScheme() ? 443 : 80;    }    private function __construct()    {        // cannot be instantiated    }}
 |