dariof28 / url-builder
此软件包提供了一个UrlBuilder,可以轻松生成指定协议、参数、端口等的URL。
0.1.0
2021-05-01 23:33 UTC
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
这个PHP软件包帮助构建URL。
安装
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