nahid/url-factory

UrlFactory 是一个用于处理 URL 的 PHP 包

v1.0.0-a.1 2022-08-20 15:20 UTC

This package is auto-updated.

Last update: 2024-09-21 10:02:13 UTC


README

UrlFactory 是一个用于处理 URL 的 PHP 包。它为你提供最佳的开发者体验来管理和操作 URL。UrlFactory 提供简单但强大的方式来处理查询字符串、路径和域名。

要求

  • php >= 8.0

  • ext-json

  • ext-intl

安装

UrlFactory 可在 Packagist 上找到。您可以通过运行以下命令在任何包中直接安装它

composer require nahid/url-factory

配置

运行此包不需要额外的配置,但通过传递配置,您可以更好地控制此包。

默认配置

// use Nahid\UrlFactory\Enum;
[
    Enum::CONFIG_KEY => 'secret-key',
    Enum::CONFIG_SIGNER => MD5UrlSigner::class,
    Enum::CONFIG_PSR_CACHE_INTERFACE => null,
    Enum::CONFIG_PSR_CLIENT_INTERFACE => null,
    Enum::CONFIG_PSR_REQUEST_FACTORY_INTERFACE => null,
]

您可以根据需要修改它,并在初始化时传递给 UrlFactory

语法

new Url([string $url, [array $config]]);

构造函数的参数都是可选的

初始化

use Nahid\UrlFactory\Url;
use Nahid\UrlFactory\Enum;


$url = new Url('http://app.staging.google.com.bd/private/search?q=bangladesh&page=1&limit=20', [
    Enum::CONFIG_KEY => 'random-secret-key',
]);

我们使用 http://app.staging.google.com.bd/private/search?q=bangladesh&page=1&limit=20 作为我们的下一个示例

示例

URL 提取和获取

use Nahid\UrlFactory\Url;
use Nahid\UrlFactory\Enum;


$url = new Url('http://app.staging.google.com.bd/private/search?q=bangladesh&page=1&limit=20', [
    Enum::CONFIG_KEY => 'random-secret-key',
]);

echo $url->getScheme() . "\n";
echo $url->getQuery() . "\n";
var_dump($url->getQueryParam()) . "\n";
echo $url->getPath() . "\n";
echo $url->domain()->getSubdomain() . "\n";
echo $url->domain()->getSuffix() . "\n";
echo $url->domain()->getTld() . "\n";
输出
http
q=bangladesh&page=1&limit=20
['q' => 'bangladesh', 'page '=> 1, 'limit' => 20]
private/search
app.staging
com.bd
com

URL 修改

use Nahid\UrlFactory\Url;
use Nahid\UrlFactory\Enum;


$url = new Url('http://app.staging.google.com.bd/private/search?q=bangladesh&page=1&limit=20', [
    Enum::CONFIG_KEY => 'random-secret-key',
]);


$url->useSchemeHttps()
    ->usePath('query')
    ->useQueryParams(['search'=> 'dhaka'])
    ->useFragment('top')
    ->domain(function(\Nahid\UrlFactory\Domain $domain) {
        $domain->useBaseName('bing')
            ->useSuffix('co.in')
            ->useSubdomain('app');
    });

echo $url->get()

输出

https://app.bing.co.in/query?search=dhaka#top

签名 URL

use Nahid\UrlFactory\Url;
use Nahid\UrlFactory\Enum;


$url = new Url('http://app.staging.google.com.bd/private/search?q=bangladesh&page=1&limit=20', [
    Enum::CONFIG_KEY => 'random-secret-key',
]);


$url->useSchemeHttps()
    ->usePath('query')
    ->useQueryParams(['search'=> 'dhaka'])
    ->useFragment('top')
    ->domain(function(\Nahid\UrlFactory\Domain $domain) {
        $domain->useBaseName('bing')
            ->useSuffix('co.in')
            ->useSubdomain('app');
    });

echo $url->sign(7)->get(); // Generate signed URL with 7 days validity
 

输出

https://app.bing.co.in/query?search=dhaka&expires=1661613403&signature=5fd3f94c145731a085f6964cb3c4d03d#top

API 列表

此包中有许多可用的 API。我们将尽快更新它