binary-cats / laravel-url-shortener
Laravel 强大的 URL 缩短工具
Requires
- php: >=5.6.0
- guzzlehttp/guzzle: ^6.2||^7.0
- guzzlehttp/promises: ^1.0
- guzzlehttp/psr7: ^1.4
- illuminate/support: ^5.1 || ^6.0 || ^7.0 || ^8.0
- psr/http-message: ^1.0
Requires (Dev)
- illuminate/routing: ^5.1 || ^6.0 || ^7.0 || ^8.0
- phpunit/phpunit: ^7.0|^8.0|^9.0
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 中的所有内容一样,您可以为此包添加自己的驱动程序。您可以通过将以下代码添加到 AppServiceProvider
的 boot
方法来完成此操作。
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”下找到,前缀可以在动态链接菜单下定义和访问。
后缀可以是 SHORT
或 UNGUESSABLE
的值。
重要!通过 API 创建的链接在 Firebase 控制台中不可见。它们只能通过 Analytics REST API 访问。
Is.gd / V.gd
此驱动程序支持通过各自的API使用 is.gd 和 v.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)。有关更多信息,请参阅 许可证文件。