使用STS临时访问凭证访问OSS

Backend

现在越来越多的项目使用oss存储文件,为了减轻服务器带宽的压力,通常会选择让前端直接把文件传到oss,但是为了不暴露密钥,通常会通过STS服务给前端颁发一个临时访问凭证。前端可使用临时访问凭证在规定时间内访问您的OSS资源。 下面看下如何快速配置sts服务: 最后记得复制 RoleArn,类似:acs:ram::13530326330670:role/aliyunosstokengeneratorrole 参考 https://help.aliyun.com/document_detail/100624.html

聊天机器人模型 - ChatGPT

Backend

申请账号 网上有教程,其中一个问题是不支持国内手机号,这就需要借助短信接码平台 还有一个问题,正常情况:注册成功openai会赠送18美金,可以用于api调用。但如果你用的这个手机号被其他人用过了,这18美金就没有了。我第一次就遇到这个问题,只能换个E-mail重新注册 PHP类库 openai-php/client 要求 PHP 8.1+ composer require openai-php/client 简单使用 $client = OpenAI::client('YOUR_API_KEY'); $result = $client->completions()->create([ ...

PHPUnit 的使用

Backend

安装 PHP Archive (PHAR) wget -O phpunit https://phar.phpunit.de/phpunit-9.phar chmod +x phpunit root@php-fpm:/var/www/html# ./phpunit --version PHPUnit 9.5.27 by Sebastian Bergmann and contributors. 或者,Composer composer require --dev phpunit/phpunit ^9 root@php-fpm:/var/www/laravel-demo# ./vendor/bin...

PHP PHPStan 的使用

Backend

安装 composer require --dev phpstan/phpstan 修改composer.json "scripts": { ... "stan": [ " php -d memory_limit=-1 vendor/bin/phpstan analyse app routes database config tests" ] }, 在项目根目录添加phpstan.neon配置文件 root@php-fpm:/var/www/laravel-demo# vi phpstan.neon ...

Laravel 数据库交互 - 查询构造器

Backend

获取结果 从表中检索所有行 $articles = DB::table('article')->get(); foreach ($articles as $article) { echo $article->title.PHP_EOL; } 从表中检索单行或单列 #通过id字段获取一行 $article = DB::table('article')->find(3); #获取一行 $article = DB::table('article')->where(...

Laravel 数据库交互 - 原生 SQL

Backend

return DB::connection('mysql')->select('SELECT * FROM `article` WHERE `category_id` = ?', [1]); return DB::select('SELECT * FROM `article` WHERE `category_id` = ?', [1]); #使用命名绑定 #除了使用 ? 表示参数绑定外,你还可以使用命名绑定的形式来执行一个查询: return DB::select('select * from `article` ...

Laravel 迁移文件migrations 和 数据填充seeders

Backend

迁移文件 migration #创建一个迁移 php artisan make:migration create_store_categories_table #运行所有未完成的迁移 php artisan migrate #如果要查看到目前为止已运行哪些迁移 php artisan migrate:status #如果您希望查看迁移将执行的 SQL 语句而不实际运行它们 php artisan migrate --pretend #某些迁移操作具有破坏性,这意味着它们可能会导致数据丢失。为了防止您对生产数据库运行这些命令,在执行命令之前,系统将提示您进行确认。若要强制命令在没有提示的...

Laravel 中的 redis

Backend

Redis 在 Laravel 中有两个角色,缓存和数据库 数据库 配置文件 config/database.php 作为数据库使用,有两个REDIS_CLIENT可选,默认是phpredis(php的redis扩展),可选predis(纯php的三方库),两者区别,详见:https://www.cnblogs.com/afeige/p/14385588.html Redis 门面的使用(Illuminate\Support\Facades\Redis) 下面以phpredis扩展为例 Redis::set('a', 1); //没提示,和connection('default') 一样 Re...

Laravel 记录SQL日志

Backend

Laravel 默认只在sql语法错误时提示完整的sql日志,但实际情况接口慢,筛选条件和预期不符等,都需要看到sql语句,通过sql语句判断问题所在 下面介绍实现方式 第一步 修改 AppServiceProvider.php vi app/Providers/AppServiceProvider.php <?php namespace App\Providers; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Log; use Illuminate\Support\ServiceProvider; ...

Laravel 以服务提供者的方式使用第三方扩展包

Backend

下面以使用腾讯地图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...