kikter/laravel-trends

Laravel Trends 为您的应用程序提供轻量级趋势系统。

dev-main 2024-05-06 08:50 UTC

This package is auto-updated.

Last update: 2024-09-06 09:29:49 UTC


README

Total Downloads Latest Stable Version License

介绍

你是否曾好奇Twitter的趋势话题是如何工作的?Laravel Trends为您的应用程序提供轻量级趋势系统。

先决条件

在安装包之前,请确保您已经配置并运行了队列,因为趋势系统需要使用它来控制趋势。请参阅Laravel的官方文档以在项目中配置队列。

安装

您可以通过Composer安装Laravel Trends

$ composer require kikter/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 许可证 授权。