toneflix-code / cuttly-laravel
Cutt.ly API 的 Laravel API 包装器。
Requires
- php: ^8.1|^8.2|^8.3
- illuminate/support: ^9.0|^10.0|^11.0
- toneflix-code/cuttly-php: ^1.0
Requires (Dev)
- illuminate/contracts: ^9.0|^10.0|^11.0
- imanghafoori/php-imports-analyzer: ^1.0
- laravel/pint: ^1.15
- orchestra/testbench: ^7.4|^8.0|^9.4
- pestphp/pest: ^2.34
- pestphp/pest-plugin-laravel: ^2.4
- phpstan/phpstan: ^1.12
README
Cutt.ly 是一个集所有功能于一体的链接管理平台。缩短您的链接,跟踪点击,并使用我们的全功能 URL 短链器提升您的品牌。创建自定义短链接,生成二维码,构建链接生物页面,并通过调查收集反馈。今天开始优化您的 URL 并查看影响!另一方面,Cuttly PHP 旨在通过提供一个简单的 PHP 包装器来绕过 Cutt.ly API,另一方面,这个包已经被精心挑选,以使 Laravel 工匠的安装和入门更加容易。
请参阅 Cutt.ly API 文档 以获取详细的 API 使用描述,因为这个包试图以最佳方式反映 API。
要求
- PHP >= 8.1
- Laravel ^9.0|^10.0|^11.0
安装
您可以通过 composer 安装此包
composer require toneflix-code/cuttly-laravel
升级
如果您来自 1.x 版本,您可能无法升级到 2.x 版本,因为版本是对包的完全重写,几乎完全支持整个 Cutt.ly API,1.x 版本已移动到 v1.x.x 分支,并将继续收到安全补丁和功能,直至 2025 年底。
包发现
Laravel 自动发现并发布服务提供者,但您在安装 Laravel Fileable 后,如果使用 Laravel 11 以下版本,请打开您的 Laravel 配置文件,config/app.php
,并添加以下行。
在 $providers 数组中添加此包的服务提供者。
ToneflixCode\Cuttly\CuttlyServiceProvider::class
如果您使用 Laravel >= 11,请打开您的 bootstrap/providers.php
并将上述行添加到数组中。
return [ ToneflixCode\Cuttly\CuttlyServiceProvider::class, ];
初始化
要开始使用此库,您需要将您的 API 密钥添加到 .env 文件中,使用以下变量
CUTTLY_API_KEY=your-cutt.ly-API-key
CUTTLY_TEAM_API_KEY=your-cutt.ly-API-key #[Optional] For users with team subscriptions.
如果您希望直接与基类交互,您可能想看看 https://github.com/toneflix/cuttly-php
初始化错误
如果没有提供 API 密钥,库将在任何其他关联操作调用时抛出 ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException
异常。
常规 API 使用
缩短 URL
要缩短 URL,只需调用与 Cuttly
实例的 regular()
方法链的 shorten(string)
方法,将您打算缩短的链接作为唯一参数传递。
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://toneflix.com.ng/learning'; $data = Cuttly::regular()->shorten($link);
shorten()
方法返回一个 ToneflixCode\CuttlyPhp\Builders\ShortenResponse
实例,它包含 API 返回请求响应的所有属性。
链式参数
我们花了一些时间确保在使用此库时,您首先可以访问 cuttly 提供的所有功能,以下是您可以将方法链作为参数使用以进一步自定义请求的参数列表。
name(string)
: 您希望使用的短链接 - 别名 - 如果尚未被占用noTitle()
: 更快的 API 响应时间 - 此参数禁用从源页面元标签获取页面标题,从而加快 API 响应时间。适用于团队企业计划public()
: 通过 API 设置缩短链接的公共点击统计信息userDomain()
:使用经过批准且状态为status: active
的用户账户的域名。
示例用法
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://toneflix.com.ng/learning'; $data = Cuttly::regular()->name('toneflix101')->shorten($link);
请注意,shorten()
应在链的末尾调用。
编辑短链接
该库还允许您编辑您创建的短链接。要编辑链接,只需将edit(string)
方法链接到Cuttly
实例的regular()
方法,将您要编辑的短链接作为唯一参数即可。
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://cutt.ly/toneflix101'; $data = Cuttly::regular()->edit($link);
当然,上面的示例实际上什么也没做,将会抛出ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException
。要实际编辑链接,您可以在调用中链接以下任何方法。
name(string)
:新的别名/名称,如果已被占用则无效。userDomain()
:使用经过批准且状态为status: active
的用户账户的域名。tag(string)
:为缩短链接添加的标签。source(string)
:更改缩短链接的源URL。unique(0|1|15-1440)
:为短链接设置唯一的统计计数。title()
:将更改缩短链接的URL标题。
示例用法
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://cutt.ly/toneflix101'; $data = Cuttly::regular()->name('toneflix404')->userDomain()->unique(1)->edit($link);
edit()
方法返回一个包含请求响应所有属性的实例ToneflixCode\CuttlyPhp\Builders\BaseResponse
,这些属性由API返回[查看文档]。
链接分析
为了访问URL统计信息,请调用链接到Cuttly
实例的regular()
方法的stats(string)
方法,将您要获取分析统计信息的短链接作为唯一参数。
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://cutt.ly/toneflix404'; $data = Cuttly::regular()->stats($link);
stats()
方法返回一个包含请求响应所有属性的实例ToneflixCode\CuttlyPhp\Builders\StatsResponse
,这些属性由API返回[查看文档]。
删除短链接
要删除短链接,请调用链接到Cuttly
实例的regular()
方法的delete(string)
方法,将您要删除的短链接作为唯一参数。
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://cutt.ly/toneflix404'; $data = Cuttly::regular()->delete($link);
delete()
方法返回一个包含请求响应所有属性的实例ToneflixCode\CuttlyPhp\Builders\BaseResponse
,这些属性由API返回[查看文档]。
团队API使用
团队API实现了与常规API相同的方法和链式方法,但有几点例外,我们将在下面指出。
要使用团队API,我们将在Cuttly
实例上调用team()
方法,现在您可以链接上述所有方法以使用团队API。
缩短链接
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://toneflix.com.ng/learning'; $data = Cuttly::team()->name('toneflix301')->shorten($link);
编辑短链接
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://cutt.ly/toneflix301'; $data = Cuttly::team()->edit($link);
链接分析
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://cutt.ly/toneflix301'; $data = Cuttly::team()->stats($link);
删除短链接
use ToneflixCode\Cuttly\Facades\Cuttly; $link = 'https://cutt.ly/toneflix404'; $data = Cuttly::team()->delete($link);
异常
ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException
ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException
当未提供API密钥或提供的API密钥无效时,将抛出ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException
异常。
ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException
ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException
当Cuttly API返回错误时,将抛出ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException
异常。
异常处理
当遇到异常时,您可以根据自己的使用情况以最佳方式处理它。
use ToneflixCode\Cuttly\Facades\Cuttly; use ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException; try { $link = 'https://toneflix.com.ng/learning'; $data = Cuttly::regular()->name('toneflix404')->shorten($link); } catch (FailedRequestException $th) { echo $th->getMessage(); }
use ToneflixCode\Cuttly\Facades\Cuttly; use ToneflixCode\CuttlyPhp\Exceptions\InvalidApiKeyException; use ToneflixCode\CuttlyPhp\Exceptions\FailedRequestException; try { $link = 'https://toneflix.com.ng/learning'; $data = Cuttly::regular()->name('toneflix404')->shorten($link); } catch (FailedRequestException|InvalidApiKeyException $th) { echo $th->getMessage(); }
有关API可以获取的详细描述,请阅读Cutt.ly 文档。
测试
composer test
变更日志
请参阅CHANGELOG以获取有关最近更改的更多信息。
贡献
请参阅CONTRIBUTING以获取详细信息。
安全
如果您发现任何安全问题,请通过code@toneflix.com.ng发送电子邮件,而不是使用问题跟踪器。
鸣谢
许可
MIT 许可证 (MIT)。有关更多信息,请参阅许可文件。