dariof28/url-builder

This package provides a UrlBuilder to easily generate urls specifying protocol, params, port etc

0.1.0 2021-05-01 23:33 UTC

This package is not auto-updated.

Last update: 2024-09-30 15:05:17 UTC


README

This php package help to build urls.

GitHub GitHub code size in bytes Packagist Downloads Packagist Version LinkedIn

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