* @author Dennis Eichhorn * @copyright Dennis Eichhorn * @license OMS License 1.0 * @version 1.0.0 * @link http://orange-management.com */ declare(strict_types=1); namespace phpOMS\Uri; /** * Uri interface. * * @category Framework * @package phpOMS/Uri * @author OMS Development Team * @author Dennis Eichhorn * @license OMS License 1.0 * @link http://orange-management.com * @since 1.0.0 */ interface UriInterface { /** * Is uri valid? * * @param string $uri Uri string * * @return bool * * @since 1.0.0 * @author Dennis Eichhorn */ public static function isValid(string $uri) : bool; /** * Get scheme. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getScheme() : string; /** * Get authority. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getAuthority() : string; /** * Get user info. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getUserInfo() : string; /** * Get host. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getHost() : string; /** * Get port. * * @return int * * @since 1.0.0 * @author Dennis Eichhorn */ public function getPort() : int; /** * Get path. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getPath() : string; /** * Get path element. * * @param int $pos Position of the path * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getPathElement(int $pos) : string; /** * Get query. * * @param string $key Query key * * @return string|array * * @since 1.0.0 * @author Dennis Eichhorn */ public function getQuery(string $key = null); /** * Get fragment. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getFragment() : string; /** * Get uri. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function __toString(); /** * Get base uri. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getBase() : string; /** * Get route representation of uri. * * @return string * * @since 1.0.0 * @author Dennis Eichhorn */ public function getRoute() : string; /** * Set uri. * * @param string $uri Uri * * @return void * * @since 1.0.0 * @author Dennis Eichhorn */ public function set(string $uri); }