1<?php
2
3namespace OAuth\Common\Http\Uri;
4
5/**
6 * Factory interface for uniform resource indicators
7 */
8interface UriFactoryInterface
9{
10    /**
11     * Factory method to build a URI from a super-global $_SERVER array.
12     *
13     * @param array $_server
14     *
15     * @return UriInterface
16     */
17    public function createFromSuperGlobalArray(array $_server);
18
19    /**
20     * Creates a URI from an absolute URI
21     *
22     * @param string $absoluteUri
23     *
24     * @return UriInterface
25     */
26    public function createFromAbsolute($absoluteUri);
27
28    /**
29     * Factory method to build a URI from parts
30     *
31     * @param string $scheme
32     * @param string $userInfo
33     * @param string $host
34     * @param string $port
35     * @param string $path
36     * @param string $query
37     * @param string $fragment
38     *
39     * @return UriInterface
40     */
41    public function createFromParts($scheme, $userInfo, $host, $port, $path = '', $query = '', $fragment = '');
42}
43