lex142 / laravel-url-shortener
Laravel中的强大URL缩短工具
该软件包的规范仓库似乎已丢失,因此该软件包已被冻结。
Requires
- php: ^7.1
- guzzlehttp/guzzle: ^6.2
- guzzlehttp/promises: ^1.0
- guzzlehttp/psr7: ^1.4
- illuminate/support: ^7.0 || ^8.0
- psr/http-message: ^1.0
Requires (Dev)
- illuminate/routing: ^7.0 || ^8.0
- phpunit/phpunit: ^9.3
README
Laravel中的强大URL缩短工具
安装
您可以使用以下命令轻松安装此软件包,使用Composer运行:
composer require Lex142/laravel-url-shortener
要求
此软件包有以下要求
- PHP 7.1 或更高版本
- Laravel 5.1 或更高版本
Laravel 5.5+
如果您使用的是Laravel 5.5或更高版本,那就行了。现在您可以继续使用该软件包,转到用法部分。
Laravel 5.1-5.4
如果您正在使用较旧的Laravel版本,请将软件包的服务提供程序注册到您的应用程序中。您可以通过将以下行添加到您的config/app.php文件中来实现这一点
'providers' => [ ... Lex142\UrlShortener\UrlShortenerServiceProvider::class, ... ],
用法
可以从容器中通过两种方式检索缩短器
$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的promise库进行异步缩短,有关更多信息,请参阅它们的文档。
您还可以使用依赖注入将缩短器注入到方法中
class MyController extends Controller { public function myFunction(ShortenerManager $shortener) { $shortener->shorten(...); } }
缩短器公开以下方法
| 方法 | 描述 |
|---|---|
shorten |
缩短给定的URL |
shortenAsync |
异步缩短给定的URL |
driver |
检索一个驱动程序(例如 tiny_url) |
extend |
注册您自己的驱动程序 |
更改驱动程序
您可以通过设置环境文件中的URL_SHORTENER_DRIVER={driver}或发布配置文件并直接更改它来更改默认驱动程序。
添加自己的驱动程序
与Laravel的核心组件类似,您可以为此软件包添加自己的驱动程序。您可以通过将以下代码添加到应用程序的中心位置(最好是服务提供程序)来实现。
public function boot(ShortenerManager $shorteners) { $shorteners->extend('my_driver', function ($app, $config) { // Return your driver instance here }); }
一旦您注册了您的驱动程序,您就可以像调用其他驱动程序一样调用它。
如果您编写了一个可能对他人有用的自定义驱动程序(例如公共在线缩短服务),请考虑通过拉取请求将其添加到软件包中。
可用的驱动程序
以下是可用驱动程序及其各自规范的列表
| 服务 | 驱动程序名称 | 自版本 | 分析 | 货币化 |
|---|---|---|---|---|
| Bit.ly | bit_ly |
0.1.0 | 是 | 否 |
| Firebase Dynamic Links | firebase |
0.2.0 | 是 | 否 |
| Is.gd | is_gd |
0.2.0 | 是 | 否 |
| Ouo.io | ouo_io |
0.2.0 | 是 | 是 |
| Polr | polr |
0.3.0 | 是 | 否 |
| Shorte.st | shorte_st |
0.1.0 | 是 | 是 |
| TinyURL | tiny_url |
0.1.0 | 否 | 否 |
| V.gd | is_gd |
0.2.0 | 是 | 否 |
Bit.ly
此驱动程序在Bit.ly的API上运行,目前仅支持API版本4。该API需要一个访问令牌,目前仅支持通用访问令牌。您可以从Bit.ly个人资料中获取此类令牌。如果您有付费的Bit.ly帐户,您还将能够设置缩短URL的域。
| 变量 | 描述 |
|---|---|
URL_SHORTENER_API_TOKEN |
您的Bit.ly API令牌 |
URL_SHORTENER_PREFIX |
您的短URL域名 |
Firebase Dynamic Links
此驱动程序在Firebase的API上运行。API需要一个访问令牌、URI前缀和后缀。您可以在Firebase控制台中访问这些信息。项目设置下的“Web API密钥”下可以找到可访问的令牌,而前缀可以在动态链接菜单下定义和访问。
后缀可以具有值 SHORT 或 UNGUESSABLE。
重要! 通过API创建的链接在Firebase控制台中不可见。它们只能通过Analytics REST API访问。
| 变量 | 描述 | 默认 |
|---|---|---|
URL_SHORTENER_API_TOKEN |
您的Firebase API令牌 | |
URL_SHORTENER_PREFIX |
您的URL前缀 | |
URL_SHORTENER_STRATEGY |
路径组件创建方法 | UNGUESSABLE |
Is.gd / V.gd
此驱动程序支持is.gd和v.gd,通过它们各自的API。当启用链接预览时,将使用v.gd,否则将使用is.gd。
| 变量 | 描述 |
|---|---|
URL_SHORTENER_ANALYTICS |
启用或禁用统计信息 |
Ouo.io
此驱动程序使用Ouo.io API,需要访问令牌。该API允许通过广告进行URL货币化,并通过其仪表板提供分析。
| 变量 | 描述 |
|---|---|
URL_SHORTENER_API_TOKEN |
您的Ouo.io API令牌 |
Polr
此驱动程序使用Polr API。该API需要访问令牌和URI前缀。
| 变量 | 描述 |
|---|---|
URL_SHORTENER_API_TOKEN |
您的Polr API令牌 |
URL_SHORTENER_PREFIX |
您的URL前缀 |
Shorte.st
此驱动程序使用Shorte.st API,需要访问令牌。此API支持您的URL货币化,并通过其仪表板提供对您流量的洞察。
| 变量 | 描述 |
|---|---|
URL_SHORTENER_API_TOKEN |
您的Shorte.st API令牌 |
TinyURL
此驱动程序在TinyURL API上运行,无需额外的设置。此驱动程序是包的默认设置。
变更日志
有关最近版本中更改的信息,请参阅变更日志。
安全
如果您发现任何安全相关的问题,请通过电子邮件联系作者之一,而不是使用问题跟踪器。您可以在composer.json中找到作者电子邮件。
贡献
有关详细信息,请参阅贡献指南。
鸣谢
许可证
MIT许可(MIT)。有关更多信息,请参阅许可文件。