Dingo版本 | Laravel版本 | Minimum PHP 版本 | 支持? |
---|---|---|---|
1.x.x | Pre 5.6 | No | |
2.x.x | 5.6 - 6.x | PHP 7.1 - 7.2 | No |
3.x.x | 7.x - 8.x | PHP 7.2.5 | Yes |
"require": {
"dingo/api": "^3.0.0"
}
cd /docker/www/shopby # 进入项目目录
php artisan vendor:publish --provider=“Dingo\Api\Provider\LaravelServiceProvider”
Dingo\Api\Facade\API 这个是调度器的 Facade ,并提供了一些好用的辅助方法。
Dingo\Api\Facade\Route 可使用这个 Facade 来获取 API 的当前路由、请求、检查当前路由的名称等。
API_SUBTYPE=shopby # 项目名称
API_PREFIX=api # url前缀
API_VERSION=v1 # 版本
API_DEBUG=true # 调试模式
"require": {
"tymon/jwt-auth": "^1.0.2"
}
cd /docker/www/shopby # 进入项目目录
php artisan vendor:publish --provider=“Dingo\Api\Provider\LaravelServiceProvider”
#php artisan jwt:secret生成的密钥
JWT_SECRET=JZRfB0nk85YF4147sK4plxMeNue56HDn52AIwtluB38c4E3Y3Evwy3y4QhZWWemD
'defaults' => [
'guard' => 'api',
'passwords' => 'users',
],
...
'guards' => [
'api' => [
'driver' => 'jwt',
'provider' => 'users',
],
],
'auth' => [
'jwt' => 'Dingo\Api\Provider\JWT'
],
laravel中默认使用phpredis,需要安装php redis扩展,phpredis安装,推荐使用phpredis
在无法安装扩展情况下可以使用predis,暂时遇到问题无法使用redis stream
composer require predis/predis
在config/database.php 文件中加修改redis配置中的: ‘client’ => env(‘REDIS_CLIENT’, ‘predis’),
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();
});
}
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容器中运行监听队列