如何在 Laravel 中创建自定义数据检索 class?

How to create a custom data retrieval class in Laravel?

我目前正在使用 Laravel 构建一个小应用程序并希望在仪表板上显示天气。为此,我使用了访问 Forecast.io API 的 Composer 包。但是,由于 API 对每天的免费通话有速率限制,我想使用 Laravel 设施缓存数据并每隔几分钟更新一次。

为此我想到了两种方法:

  1. 创建自定义 class 在轮询之前检查缓存中的数据并让缓存数据在 x 分钟后过期。
  2. 在 Laravel 中创建一个定期更新缓存中的天气数据的 cronjob。

从我的角度来看,第一个选项似乎更好,因为它保证我将始终有可用的数据,即使缓存已清空。除此之外,它看起来更干净。

问题是:我不知道如何在 Laravel 中实现这样的 class 并且在官方文档中也找不到任何内容。我希望我可以简单地调用一个 Facade 来给我数据,其余的在后台处理。我只需要知道在哪里放置这样的 Facade 以及如何设置它。

此致,

黑子

你甚至不需要 Class 就可以使用

$weather = Cache::remember('weather', $minutes, function() {
    // Your API call
    return $weather;
});

您可以在此处查看文档 https://laravel.com/docs/5.2/cache#retrieving-items-from-the-cache

此方法的缺点是如果缓存为空,您的用户将等待 API 调用...

如果您只想将值存储在缓存中然后检索它,您仍然可以使用 cron。