wsenjer / laravel-trends
Laravel Trends 为您的应用程序提供了一个轻量级的趋势系统。
Requires
- php: ^7.2|^8.0
- illuminate/contracts: ^6.9|^7.0|^8.0|^9.0
- illuminate/database: ^6.9|^7.0|^8.0|^9.0
- illuminate/support: ^6.9|^7.0|^8.0|^9.0
This package is auto-updated.
Last update: 2024-09-26 15:57:04 UTC
README
介绍
你是否曾经好奇过Twitter的趋势话题是如何工作的?Laravel Trends 为您的应用程序提供了一个轻量级的趋势系统。
先决条件
在安装此包之前,请确保您已经设置了正在运行的工作队列,因为趋势使用它来控制趋势。请参考Laravel的官方文档以配置项目中队列。
安装
您可以通过Composer安装Laravel Trends
$ composer require hacklabsdev/laravel-trends
接下来,使用vendor:publish命令发布趋势配置和迁移文件。配置文件将被放置在您的config目录中
$ php artisan vendor:publish --provider="Hacklabs\Trends\TrendsServiceProvider"
最后,您应该运行数据库迁移
php artisan migrate
工作原理
趋势允许您为任何您想要的模型创建一个趋势系统。以Twitter为例。每次有人发表带有标签的推文时,它都会获得1点能量,但30分钟后,这单个能量点会衰减0.25的价值。再过30分钟,它会衰减0.45点的价值。最后,再过30分钟,它会衰减0.30的价值,回到0。但如何检测趋势?想象一下,成千上万的人同时点击同一个标签,这个标签将拥有成千上万能量点,如果你有一个有序的标签列表,这个标签肯定会位于顶部,但几分钟之后,如果这个标签不再接收任何能量点,它将开始失去能量并随着时间的推移而衰减。
配置
要配置您的衰减时间,您可以在config/trends.php中设置energy_decay参数。衰减时间以小时计。
准备您的模型
为了让您的模型能够与趋势一起工作,您需要实现HasEnergy特质。并且,为了返回当前模型能量值,将energy_amount添加到您的序列化中。
use Hacklabs\Trends\Traits\HasEnergy; class Hashtag extends Model { use HasEnergy; protected $appends = ['energy_amount']; }
使用
要向您的模型添加能量,请使用以下方法
$hashtag->addEnergy(1);
要获取当前值
$hashtag->energy->amount;
示例
$hashtags = Hashtag::all(); $orderedHashtags = $hashtags->sortByDesc('energy_amount');
上面的代码根据趋势创建了一个有序的标签列表。
许可证
Laravel Trends 是开源软件,受MIT许可证许可。