binary-cats/laravel-url-shortener

Laravel 强大的 URL 缩短工具

8.0.0 2020-10-10 19:28 UTC

This package is auto-updated.

Last update: 2024-09-11 04:15:30 UTC


README

为您的 Laravel 提供强大的 URL 缩短工具

安装

您可以使用Composer轻松安装此包,只需运行以下命令

composer require binary-cats/laravel-url-shortener

要求

此包有以下要求

  • PHP 7.1 或更高版本
  • Laravel 5.1 或更高版本

Laravel 8+

如果您使用 Laravel 8,则必须具有 PHP 7.3 或更高版本(这是 Laravel 的基本要求)

Laravel 5.5+

如果您使用 Laravel 5.5 或更高版本,那就这样了。现在您可以使用此包,继续到 用法 部分。

Laravel 5.1-5.4

如果您正在使用较旧的 Laravel 版本,请将包的服务提供者注册到您的应用程序中。您可以通过将以下行添加到您的 config/app.php 文件来完成此操作

'providers' => [
   ...
   BinaryCats\UrlShortener\UrlShortenerServiceProvider::class,
   ...
],

配置

如果您想更改默认配置,您可以使用以下命令发布它

php artisan vendor:publish --provider=BinaryCats\\UrlShortener\\UrlShortenerServiceProvider

此包将公开以下配置文件

return [

    'default' => env('URL_SHORTENER_DRIVER', 'tiny_url'),

    'shorteners' => [

        'bit_ly' => [
            'driver' => 'bit_ly',
            'domain' => env('URL_SHORTENER_PREFIX', 'bit.ly'),
            'token' => env('URL_SHORTENER_API_TOKEN'),
        ],

        'firebase' => [
            'driver' => 'firebase',
            'prefix' => env('URL_SHORTENER_PREFIX'),
            'token' => env('URL_SHORTENER_API_TOKEN'),
            'suffix' => env('URL_SHORTENER_STRATEGY', 'UNGUESSABLE'),
        ],

        'is_gd' => [
            'driver' => 'is_gd',
            'base_uri' => 'https://is.gd',
            'statistics' => env('URL_SHORTENER_ANALYTICS', false),
        ],

        'ouo_io' => [
            'driver' => 'ouo_io',
            'token' => env('URL_SHORTENER_API_TOKEN'),
        ],

        'polr' => [
            'driver' => 'polr',
            'prefix' => env('URL_SHORTENER_PREFIX'),
            'token' => env('URL_SHORTENER_API_TOKEN'),
        ],

        'shorte_st' => [
            'driver' => 'shorte_st',
            'token' => env('URL_SHORTENER_API_TOKEN'),
        ],

        'tiny_url' => [
            'driver' => 'tiny_url',
        ],

        'v_gd' => [
            'driver' => 'is_gd',
            'base_uri' => 'https://v.gd',
            'statistics' => env('URL_SHORTENER_ANALYTICS', false),
        ],
    ],
];

以下是配置 .env 值的完整列表

#-------------------------
# Services:  Url Shortener
#
#-------------------------
URL_SHORTENER_DRIVER=tiny_url
URL_SHORTENER_PREFIX=
URL_SHORTENER_API_TOKEN=
URL_SHORTENER_STRATEGY=
URL_SHORTENER_ANALYTICS=

用法

可以通过两种方式从容器中检索缩短器

$shortener = app('url.shortener');
// or...
$shortener = url()->shortener();

一旦您有了缩短器的实例,您就可以缩短您的 URL

// This will return your shortened URL as a string
$shortener->shorten(...);

// This will return a promise which will resolve to your shortened URL
$shortener->shortenAsync(...);

// You can also call shortening from Laravel's url component directly
url()->shorten(...);

// or...
app('url')->shorten(...);

// or even...
app('url.shortener')->shorten(...);

此包依赖于 Guzzle 的承诺库进行异步缩短,有关更多信息,请参阅他们的 文档

您还可以使用依赖注入将缩短器注入到方法中

class MyController extends Controller
{
    public function myFunction(ShortenerManager $shortener)
    {
        $shortener->shorten(...);
    }
}

缩短器公开以下方法

更改驱动程序

您可以通过在环境文件中设置 URL_SHORTENER_DRIVER={driver} 或直接发布配置文件并更改它来更改默认驱动程序。

添加自定义驱动程序

与 Laravel 中的所有内容一样,您可以为此包添加自己的驱动程序。您可以通过将以下代码添加到 AppServiceProviderboot 方法来完成此操作。

use BinaryCats\UrlShortener\UrlShortenerManager;

public function boot(UrlShortenerManager $shorteners)
{
    $shorteners->extend('local', function ($app, $config) {
        return new LocalUrlShortener($app, $config);
    });
}

一旦您注册了驱动程序,就可以像调用其他驱动程序一样调用它。

如果您编写了一个可能对其他人有用的自定义驱动程序(例如公共在线缩短服务),请考虑通过拉取请求将其添加到包中。

可用驱动程序

以下是可用驱动程序及其各自规范的列表

Bit.ly

网站

此驱动程序运行在 Bit.ly 的 API 上,目前仅支持 API 版本 4。API 需要 access token,目前仅支持 通用 access token。您可以从 Bit.ly 个人资料中获取此类 token。如果您拥有付费 Bit.ly 账户,您还可以设置缩短 URL 的域名。

Firebase Dynamic Links

网站

此驱动程序运行在 Firebase 的 API 上。API 需要 access token、URI 前缀和后缀。您可以在 Firebase 控制台中访问这些信息。token 可在项目设置下的“Web API Key”下找到,前缀可以在动态链接菜单下定义和访问。

后缀可以是 SHORTUNGUESSABLE 的值。

重要!通过 API 创建的链接在 Firebase 控制台中不可见。它们只能通过 Analytics REST API 访问。

Is.gd / V.gd

网站

此驱动程序支持通过各自的API使用 is.gdv.gd。当启用链接预览时,将使用v.gd,否则将使用is.gd。

Ouo.io

网站

此驱动程序使用Ouo.io API,并需要访问令牌。该API允许通过广告进行URL货币化,并通过仪表板提供分析。

Polr

网站

此驱动程序使用Polr API。该API需要访问令牌和URI前缀。

Shorte.st

网站

此驱动程序使用Shorte.st API,该API需要访问令牌。此API支持对您的URL进行货币化,并通过其仪表板提供有关流量的洞察。

TinyURL

网站

此驱动程序在TinyURL API上运行,无需额外设置。此驱动程序是包的默认设置。

更新日志

有关最近版本中更改的信息,请参阅 变更日志

安全性

如果您发现任何安全相关的问题,请通过电子邮件联系作者之一,而不是使用问题跟踪器。您可以在 composer.json 中找到作者电子邮件。

贡献

有关详细信息,请参阅 贡献指南

致谢

这是从原始 LaraCraft的Url Shortener 转移过来的。

许可

MIT许可证(MIT)。有关更多信息,请参阅 许可证文件