Laravel 以服务提供者的方式使用第三方扩展包
2023-02-19 12:19:53 时间
下面以使用腾讯地图webservices的php封装
为例
先安装
composer require chudaozhe/tencent-map-api -vvv
先看下以普通方式使用
$key = '';//腾讯地图key
$secret_key = '';//SecretKey (SK):在腾讯位置服务控制台 > Key配置中,勾选WebServiceAPI的 SN校验时自动生成的随机字串,用于计算签名(sig)
$app = new \DeathSatan\TencentMapApi\Application($key, $secret_key);
//地址转经纬度
$data=$app->api()->addressResolution('北京市');
var_dump($data);
再看下以服务提供者的方式使用
第一步
通过通过artisan命令创建TencentMapServiceProvider
或者手动创建也行
root@php-fpm:/var/www/laravel-demo# php artisan make:provider TencentMapServiceProvider
执行成功会生成一个文件:app/Providers/TencentMapServiceProvider.php
第二步
添加一个配置文件
vi config/tencentmap.php
<?php
declare(strict_types=1);
return [
//开发密钥(Key)
'key' => env('TENCENT_MAP_KEY', 'aaaa...'),
//SecretKey (SK)
'secret_key' => env('TENCENT_MAP_SECRET_KEY', 'bbbb...'),
];
第三步
接着修改app/Providers/TencentMapServiceProvider.php
文件中的register
方法
public function register(): void
{
$this->app->singleton(Application::class, function ($app) {
return new Application(config('tencentmap.key'), config('tencentmap.secret_key'));
});
$this->app->alias(Application::class, 'tencentmap');
}
第四步
注册服务
vi config/app.php
'providers' => [
...
App\Providers\TencentMapServiceProvider::class,
],
第五步
使用,这里以控制器为例
use DeathSatan\TencentMapApi\Application;
class Other extends Controller{
protected Application $svc;
public function __construct()
{
$this->svc = app('tencentmap');
}
public function test()
{
try {
$data = $this->svc->api()->addressResolution('北京市')->toArray();
var_dump($data);
} catch (GuzzleException $e) {
throw new Exception($e->getMessage(), 500);
}
}
}
参考
相关文章
- 《安富莱嵌入式周报》第296期:硬件电路实现SPI转以太网,单片机3D游戏图形引擎,Linux基金会年度报告,安捷伦直流电源原理图,KEIL C51更新9.61
- 《安富莱嵌入式周报》第297期:开源生物医学成像系统,可肺部成像,C算法合集500例,突出极致运算速度,数值方法书籍,芯片级激光隔离,3D打印机固件Marlin
- 深入浅出理解Linux thermal governor之IPA
- 基于ArgoCD的GitOps转型实战经验
- GitOps: Kubernetes CI/CD 的缺失环节
- Linux网络编程-TCP客户端如何获取要连接的服务端IP?
- 嵌入式Qt-表格使用测试
- PHP常见的几种数据结构
- php-fpm 是如何处理php 请求的
- [linux]执行pip安装的程序:command not found
- [linux]查看linux下端口占用
- [linux]scp指令
- [linux笔记]理清linux安装程序用到的(configure, make, make install)
- [git]git忽略文件
- linux根目录下文件夹概览
- php 生产kafka 不生效问题
- PHP二维数组取差集
- php 拉取 gz 文件进行解压后保存到自己的服务器
- go包管理代理网址无法访问
- go 连接redis