This php package help to build urls.
composer require dariof28/url-builder
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.
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.
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
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 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