dariof28/url-builder

此软件包提供了一个UrlBuilder,可以轻松生成指定协议、参数、端口等的URL。

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

这个PHP软件包帮助构建URL。

GitHub GitHub code size in bytes Packagist Downloads Packagist Version LinkedIn

安装

composer require dariof28/url-builder

用法

最简单的情况是当你想从一个主机构建一个URL。默认情况下,协议自动设置为https

use DariofDev\UrlBuilder\Url;

$url = new Url('foo.bar'); // https://foo.bar 

主机不应包含协议。

协议

如果你想使用其他协议,可以使用->setProtocol()方法。

use DariofDev\UrlBuilder\Url;

$url = (new Url('foo.bar'))
    ->setProtocol('sftp'); // sftp://foo.bar

允许的协议有

  • 'ftp'
  • 'sftp'
  • 'http'
  • 'https'
  • 'smtp'

如果提供了无效的协议,将抛出InvalidProtocolException异常。

端口

你可以指定任意端口。默认情况下,不指定端口。

use DariofDev\UrlBuilder\Url;

$url = (new Url('foo.bar'))
    ->setPort(8000); // https://foo.bar:8000

路径

要定义路径,可以使用setPath()方法。

use DariofDev\UrlBuilder\Url;

$url = (new Url('foo.bar'))
    ->setPath('baz'); // https://foo.bar/baz

路径也可以包含占位符,这些占位符将被给定的值替换。

use DariofDev\UrlBuilder\Url;

$url = (new Url('foo.bar'))
    ->setPath('baz/%s', [1]); // https://foo.bar/baz/1

参数

参数可以是简单的字符串,也可以是数组。

你可以通过两种方式添加参数

  • 直接在构造函数中
use DariofDev\UrlBuilder\Url;

$url = new Url('foo.bar', ['foo' => 'bar']); // https://foo.bar?foo=bar
  • 使用流畅的设置器
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