k911 / uri-builder
This package is abandoned and no longer maintained.
No replacement package was suggested.
UriBuilder library simplifies manipulation of Uri value objects compatible with PSR-7
v0.9.0
2017-10-06 21:37 UTC
Requires
- php: >=7.1
- ext-mbstring: *
- league/uri: ^5.0
- psr/http-message: ^1.0
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.4
- phpunit/phpunit: ^6.2
This package is auto-updated.
Last update: 2022-02-01 13:10:16 UTC
README
Simplifies manipulation of URI value objects compatible with PSR-7. Under the hood, it utilizes League\Uri
powerful library.
Installation
$ composer require k911/uri-builder
Supported Schemes
Currently supported, tested, URI schemes that UriBuilder can manage and parse from bare URI string or URI components.
- http/https
- ftp/sftp
- ws/wss
- file
- data
Usage
Full public interface is available here.
Usage example:
// Simple URI string $uri = 'wss://foo.bar:9999'; // Create UriBuilder and its dependencies // ..you should either use DI container to manage it // ..or use UriBuilder facade $parser = new K911\UriBuilder\Adapter\UriParserAdapter(); $factory = new K911\UriBuilder\UriFactory($parser); $builder = new K911\UriBuilder\UriBuilder($factory); // Intiliaze UriBuilder with URI string $builder->from($uri); // or $builder->fromUri(UriInterface $uri); // or $builder->fromComponents(array $components); // UriBuilder is mutable, and allows method chaining $builder // under the hood, it automatically transforms Uri object ->setScheme('https') // simple setters ->setHost('api.foo.bar') ->setFragment('foobar') // setting DEFAULT port for https scheme ->setPort(443) // domain-related paths must always start with forward slash '/' ->setPath('/v1') // query string is generated safely from pairs according to RFC3986 ->setQuery([ 'api_token' => 'Qwerty! @#$TYu', ]) // set user info (password can be omitted) ->setUserInfo('user', 'password'); // Print result echo (string) $builder->getUri(); // https://user:password@api.foo.bar/v1?api_token=Qwerty%21%20%40%23%24TYu#foobar