如何在Laravel 8中安装并配置Finnhub.io的finnhub/client包
Finnhub Client Laravel 8 完整配置流程
1. 配置 Finnhub 密钥
- 打开项目根目录的
.env文件,在末尾添加配置项:
FINNHUB_API_TOKEN=你在Finnhub官方申请的API密钥
- 可选(推荐):打开
config/services.php,添加finnhub专属配置段,统一管理第三方服务配置:
'finnhub' => [ 'token' => env('FINNHUB_API_TOKEN'), ],
2. 服务容器绑定(符合Laravel规范,无需重复初始化实例)
- 运行命令生成自定义服务提供者:
php artisan make:provider FinnhubServiceProvider - 打开生成的
app/Providers/FinnhubServiceProvider.php,修改register方法:
<?php namespace App\Providers; use Illuminate\Support\ServiceProvider; use Finnhub\Configuration; use Finnhub\Api\DefaultApi; use GuzzleHttp\Client; class FinnhubServiceProvider extends ServiceProvider { public function register() { $this->app->singleton(DefaultApi::class, function ($app) { $config = Configuration::getDefaultConfiguration() ->setApiKey('token', config('services.finnhub.token')); return new DefaultApi(new Client(), $config); }); } }
- 打开
config/app.php,在providers数组中注册刚创建的服务提供者:
'providers' => [ // 其他原有系统服务提供者保持不变 App\Providers\FinnhubServiceProvider::class, ],
3. 调用使用示例
Laravel已经自动加载了composer包,不需要手动引入vendor/autoload.php,直接按以下方式调用即可:
依赖注入方式(推荐)
<?php namespace App\Http\Controllers; use Finnhub\Api\DefaultApi; class FinnhubTestController extends Controller { public function getUsStockSymbols(DefaultApi $finnhubClient) { $symbols = $finnhubClient->stockSymbols("US"); dd($symbols); } }
临时手动初始化方式
如果不需要全局绑定,可在需要使用的位置直接初始化:
<?php use Finnhub\Configuration; use Finnhub\Api\DefaultApi; use GuzzleHttp\Client; $config = Configuration::getDefaultConfiguration()->setApiKey('token', config('services.finnhub.token')); $client = new DefaultApi(new Client(), $config); print_r($client->stockSymbols("US"));
内容的提问来源于stack exchange,提问作者Epigie
相关产品推荐
相关产品推荐

