dariof28 / url-builder
This package provides a UrlBuilder to easily generate urls specifying protocol, params, port etc
Requires
- php: ^7.4|^8.0
- ext-json: *
Requires (Dev)
- friendsofphp/php-cs-fixer: ^2.18
- phpunit/phpunit: ^8.5|^9.0
This package is not auto-updated.
Last update: 2024-09-30 15:05:17 UTC
README
This php package help to build urls.
Installation
composer require dariof28/url-builder
Usage
The simpler case is when you want to build an url from a host. By default, protocol is automatically set to https
.
use DariofDev\UrlBuilder\Url; $url = new Url('foo.bar'); // https://foo.bar
The host should not contain the protocol.
Protocol
If you want to use another protocol you can use the ->setProtocol()
method
use DariofDev\UrlBuilder\Url; $url = (new Url('foo.bar')) ->setProtocol('sftp'); // sftp://foo.bar
Allowed protocols are:
- 'ftp'
- 'sftp'
- 'http'
- 'https'
- 'smtp'
If an invalid protocol is provided an InvalidProtocolException
is thrown.
Port
You can specify an arbitrary port. By default, no port is implied.
use DariofDev\UrlBuilder\Url; $url = (new Url('foo.bar')) ->setPort(8000); // https://foo.bar:8000
Path
To define the path you can use setPath()
method
use DariofDev\UrlBuilder\Url; $url = (new Url('foo.bar')) ->setPath('baz'); // https://foo.bar/baz
Path can also contain placeholder that will be replaced with given values
use DariofDev\UrlBuilder\Url; $url = (new Url('foo.bar')) ->setPath('baz/%s', [1]); // https://foo.bar/baz/1
Params
Params can be simple strings as like as arrays.
You can add params in 2 ways:
- directly in the constructor:
use DariofDev\UrlBuilder\Url; $url = new Url('foo.bar', ['foo' => 'bar']); // https://foo.bar?foo=bar
- with fluent setter
use DariofDev\UrlBuilder\Url; $url = (new Url('foo.bar')) ->addParam('foo', 'bar') ->addParam('bar', ['baz' => 'foo']); // https://foo.bar?foo=bar&bar%5Bbaz%5D=foo