hacklabsdev/laravel-trends

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

v0.1.2 2020-03-30 12:09 UTC

This package is auto-updated.

Last update: 2024-09-29 06:02:40 UTC


README

Total Downloads Latest Stable Version License

介绍

你是否曾经好奇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 许可证 许可。