laravel8.49安装与使用dingo/api、jwt-auth、phpredis、predis、selasticsearch、laravel-queue-rabbitmq

dingo/api 文档

Dingo版本Laravel版本Minimum PHP 版本支持?
1.x.xPre 5.6No
2.x.x5.6 - 6.xPHP 7.1 - 7.2No
3.x.x7.x - 8.xPHP 7.2.5Yes
  1. 修改laravel的composer.json文件,运行composer update
"require": {
    "dingo/api": "^3.0.0"
}
  1. 生成dingo配置文件

cd /docker/www/shopby # 进入项目目录
php artisan vendor:publish --provider=“Dingo\Api\Provider\LaravelServiceProvider”
使用artisan 命令来发布dingo配置文件

  1. API 自带了两个 Facade,Dingo\Api\Facade\API和Dingo\Api\Facade\Route

Dingo\Api\Facade\API 这个是调度器的 Facade ,并提供了一些好用的辅助方法。
Dingo\Api\Facade\Route 可使用这个 Facade 来获取 API 的当前路由、请求、检查当前路由的名称等。

  1. 修改.env文件,加入下面内容

API_SUBTYPE=shopby # 项目名称
API_PREFIX=api # url前缀
API_VERSION=v1 # 版本
API_DEBUG=true # 调试模式

jwt-auth 文档

  1. 修改laravel的composer.json文件,运行composer update
"require": {
    "tymon/jwt-auth": "^1.0.2"
}
  1. 生成jwt-auth配置文件

cd /docker/www/shopby # 进入项目目录
php artisan vendor:publish --provider=“Dingo\Api\Provider\LaravelServiceProvider”
使用artisan 命令来发布jwt-auth配置文件

  1. 生成密钥

php artisan jwt:secret
在这里插入图片描述

  1. 修改.env文件,加入下面内容:

#php artisan jwt:secret生成的密钥
JWT_SECRET=JZRfB0nk85YF4147sK4plxMeNue56HDn52AIwtluB38c4E3Y3Evwy3y4QhZWWemD

  1. 修改config/auth.php,让框架接下来使用jwt进行身份验证,对文件进行下面修改
'defaults' => [
    'guard' => 'api',
    'passwords' => 'users',
],

...

'guards' => [
    'api' => [
        'driver' => 'jwt',
        'provider' => 'users',
    ],
],
  1. 因为使用了dingo api,还要再修改config/api.php文件,让dingo也使用jwt进行身份验证
    'auth' => [
        'jwt' => 'Dingo\Api\Provider\JWT'
    ],

predis、phpredis

laravel中默认使用phpredis,需要安装php redis扩展,phpredis安装,推荐使用phpredis
在无法安装扩展情况下可以使用predis,暂时遇到问题无法使用redis stream
composer require predis/predis
在config/database.php 文件中加修改redis配置中的: ‘client’ => env(‘REDIS_CLIENT’, ‘predis’),

elasticsearch

composer require elasticsearch/elasticsearch “7.14.x”
在.env文件中加入: ES_HOSTS=192.168.31.198 # es服务器ip
在config/database.php 文件中加入: ‘elasticsearch’ => [ ‘hosts’ => explode(’,’,env(“ES_HOSTS”))],
在app/Providers/AppServiceProvider.php register函数中注册es容器

public function register()
{
    //在laravel的容器中注册一个es的单例
    $this->app->singleton('es',function (){
        $builder = ESClientBuilder::create()->setHosts(config('database.elasticsearch.hosts'));
        if (app()->environment() === 'local'){
            $builder->setLogger(app('log')->driver());
        }
        return $builder->build();
    });
}

rabbitmq

laravel中使用rabbitmq
composer require vladimir-yuldashev/laravel-queue-rabbitmq
composer require vladimir-yuldashev/laravel-queue-rabbitmq --ignore-platform-reqs # 忽略依赖安装
config/queue.php

#config/queue.php
   'rabbitmq' => [
      'driver' => 'rabbitmq',
      'queue' => env('RABBITMQ_QUEUE', 'default'),
      'connection' => PhpAmqpLib\Connection\AMQPLazyConnection::class,

      'hosts' => [
          [
              'host' => env('RABBITMQ_HOST', '172.17.0.8'),
              'port' => env('RABBITMQ_PORT', 5672),
              'user' => env('RABBITMQ_USER', 'guest'),
              'password' => env('RABBITMQ_PASSWORD', 'guest'),
              'vhost' => env('RABBITMQ_VHOST', '/'),
          ],
      ],

      'options' => [
          'ssl_options' => [
              'cafile' => env('RABBITMQ_SSL_CAFILE', null),
              'local_cert' => env('RABBITMQ_SSL_LOCALCERT', null),
              'local_key' => env('RABBITMQ_SSL_LOCALKEY', null),
              'verify_peer' => env('RABBITMQ_SSL_VERIFY_PEER', true),
              'passphrase' => env('RABBITMQ_SSL_PASSPHRASE', null),
          ],
          'queue' => [
              'job' => VladimirYuldashev\LaravelQueueRabbitMQ\Queue\Jobs\RabbitMQJob::class,
          ],
      ],

      /*
       * Set to "horizon" if you wish to use Laravel Horizon.
       */
      'worker' => env('RABBITMQ_WORKER', 'default'),

  ],

.env

#.env
QUEUE_CONNECTION=rabbitmq  # 修改默认使用队列
#下面部分为新增配置
QUEUE_DRIVER=rabbitmq
RABBITMQ_HOST=172.17.0.8
RABBITMQ_PORT=5672
RABBITMQ_USER=rabbitmq
RABBITMQ_PASSWORD=rabbitmq
RABBITMQ_VHOST=my_vhost
RABBITMQ_QUEUE=shopby

php artisan queue:work rabbitmq # php容器中运行监听队列

在这里插入图片描述
docker搭建rabbitmq容器
php容器中安装amqp扩展
laravel中使用rabbitmq

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
这是一个包含两个样本的数据集,每个样本包含三个特征和一个标签。您可以使用飞桨(PaddlePaddle)来训练模型并进行预测。以下是一个示例代码片段,可以帮助您入门: ``` import paddle import paddle.fluid as fluid # 定义数据集 train_data = [[[-6.23,-0.25,-5.46,1.59,-4.6,5.36],[4.58,4.34,4.9,8.49,6.35,14.25],[-0.631,-0.755,-0.959,-0.987,-1.083,-0.927]],-0.43], [[-0.25,-5.46,1.59,-4.6,5.36,-0.43],[4.34,4.9,8.49,6.35,14.25,19.76],[-0.755,-0.959,-0.987,-1.083,-0.927,-0.783]],1.43]] test_data = [[[-6.23,-0.25,-5.46,1.59,-4.6,5.36],[4.58,4.34,4.9,8.49,6.35,14.25],[-0.631,-0.755,-0.959,-0.987,-1.083,-0.927]],-0.43] # 定义模型 x = fluid.layers.data(name='x', shape=[3], dtype='float32') y = fluid.layers.data(name='y', shape=[1], dtype='float32') fc = fluid.layers.fc(input=x, size=1, act=None) cost = fluid.layers.square_error_cost(input=fc, label=y) avg_cost = fluid.layers.mean(cost) # 定义优化器 optimizer = fluid.optimizer.SGDOptimizer(learning_rate=0.01) opts = optimizer.minimize(avg_cost) # 定义执行器 place = fluid.CPUPlace() exe = fluid.Executor(place) exe.run(fluid.default_startup_program()) # 训练模型 for data in train_data: x_data = [data[0], data[1], data[2]] y_data = [data[3]] outs = exe.run(feed={'x': x_data, 'y': y_data}, fetch_list=[avg_cost]) print('Cost:', outs[0]) # 预测数据 x_test = [test_data[0], test_data[1], test_data[2]] predictions = exe.run(feed={'x': x_test}, fetch_list=[fc]) print('Predictions:', predictions[0]) ``` 此代码使用一个简单的全连接神经网络来训练模型,并使用均方误差作为损失函数。在训练过程中,将数据加载到模型中,并在每个数据点之后输出损失。在预测阶段,将测试数据加载到模型中,并输出预测值。 请注意,这只是一个基本示例,您可能需要根据您的具体用例进行更改和修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值