# 配置特别篇
说明
laravel-fast-api组件包在开发中,考虑业务数据的放置以及兼容性在开发之处就对配置文件做了一些调整.考虑到laravel框架版本不同,配置文件也会有微调. 特别在这里把修改的配置文件需要注意核对的地方逐一列举出来
# config\app.php
# 一时区配置
'timezone' => 'Asia/Shanghai',
1
# 二语言配置
//'fallback_locale' => 'en',
'fallback_locale' => env('APP_FAKER_LOCALE','en'),
1
2
2
# config\auth.php
# guards 守卫
TIP
这是自定义添加
'phone' => [
'driver' => 'session',
'provider' => 'users',
],
'admin' => [
'driver' => 'session',
'provider' => 'admin',
],
'admin_token'=>[
'driver'=>'Admin-Token'
],
'phone_token'=>[
'driver'=>'Phone-Token'
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# providers 提供者
TIP
这是自定义添加
'users' => [
'driver' => 'eloquent',
'model'=>\App\Models\LaravelFastApi\V1\User\User::class
],
'admin' => [
'driver' => 'eloquent',
'model' => \App\Models\LaravelFastApi\V1\Admin\Admin::class
],
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# config\database.php
# 一Mysql配置
'collation' => 'utf8mb4_unicode_ci',
1
'prefix' => env('DB_PREFIX',''),
1
'strict' => env('DB_STRICT',true),
1
'engine' => env('DB_ENGINE','MyISAM'),
1
# redis
default
'password' => env('REDIS_PASSWORD', null),
1
'read_write_timeout' => 0,
1
cache
'password' => env('REDIS_PASSWORD', null),
1
'read_write_timeout' => 0,
1
# 添加队列和广播
'queue'=>[
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => 2,
'read_write_timeout' => 0,
],
//注意广播存储的位置取决于队列,因此应该保持跟队列一致
'broadcast'=>[
'url' => env('REDIS_URL'),
'host' => env('REDIS_HOST', '127.0.0.1'),
'password' => env('REDIS_PASSWORD', null),
'port' => env('REDIS_PORT', '6379'),
'database' => 2,
'read_write_timeout' => 0,
]
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# config\queue.php
redis
'connection' => env('REDIS_QUEUE_CONNECTION','default'),
1
'block_for' => 5,
1
添加
'job' => [
'driver' => 'redis',
'connection' => env('REDIS_QUEUE_CONNECTION','default'),
'queue' => env('REDIS_QUEUE_JOB', 'job'),
'retry_after' => 90,
'block_for' => 5,
'after_commit' => false,
],
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# config\logging.php
# 添加自定义频道
//添加自定义的sql
'sql'=>[
'driver' => 'single',
'path' => storage_path('logs/sql.log'),
],
1
2
3
4
5
2
3
4
5
# 使用示例
Log::channel('sql')->info('sql');
1
# config\mail.php
添加
'exception'=>
[
'email'=>env('MAIL_USERNAME'),
],
1
2
3
4
2
3
4
# config\image.php
<?php
/*
* @Descripttion:
* @version:
* @Author: YouHuJun
* @Date: 2021-11-10 11:12:14
* @LastEditors: YouHuJun
* @LastEditTime: 2021-11-10 11:18:29
*/
return [
/*
|--------------------------------------------------------------------------
| Image Driver
|--------------------------------------------------------------------------
|
| Intervention Image supports "GD Library" and "Imagick" to process images
| internally. You may choose one of them according to your PHP
| configuration. By default PHP's "GD Library" implementation is used.
|
| Supported: "gd", "imagick"
|
*/
'driver' => 'imagick'
];
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# config\broadcasting.php
# 初次安装
php artisan install:broadcasting
1
创建 config/broadcasting.php 配置文件和 routes/channels.php 文件
# 配置 bootstrap\app.php
在withRouting中添加
channels: __DIR__.'/../routes/channels.php',
1
添加:
use Illuminate\Console\Scheduling\Schedule;
use App\Console\Commands\LaravelFastApi\V1\ExecuteTotalCommand;
1
2
3
2
3
链式调用添加
->withSchedule(function (Schedule $schedule): void {
//数据库备份
mysqlBak($schedule);
//设置日志权限
makeLogAuth($schedule);
//修改日志的属主和属组
changeLogUserAndGroup($schedule);
//测试用
//$schedule->command(ExecuteTotalCommand::class)->everyThreeMinutes();
// $schedule->command(ExecuteTotalCommand::class)->dailyAt('5:00');
})
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
执行的方法
TIP
以下仅为示例,可以参考自己的目录进行调整
/**
* 数据库备份
*
* @param Schedule $schedule
* @return void
*/
function mysqlBak(Schedule $schedule)
{
//测试用 每三分钟
//$schedule->exec('source 绝对路径/cron/mysql_bak.sh')->everyThreeMinutes()->timezone('Asia/Shanghai');
//每天凌晨零点40执行数据库备份
// $schedule->exec('source 绝对路径/cron/mysql_bak.sh')->dailyAt('00:40')->timezone('Asia/Shanghai');
}
/**
* 设置日志权限任务
*
* 每分钟执行一次chmod命令,修改Laravel日志文件的权限
* 使用Asia/Shanghai时区,
*
* @param Schedule $schedule 任务调度器实例
* @return void
*/
function makeLogAuth(Schedule $schedule)
{
$schedule->exec('chmod -R 777 /www/wwwroot/youhujun.com/api.youhujun.com/storage/')->cron('*/1 * * * *')->timezone('Asia/Shanghai');
}
/**
* 设置日志用户和组任务
*
* 每分钟执行一次chown命令,修改Laravel日志文件的用户和组
* 使用Asia/Shanghai时区,
*
* @param Schedule $schedule 任务调度器实例
* @return void
*/
function changeLogUserAndGroup(Schedule $schedule)
{
$schedule->exec('chown root:root /www/wwwroot/youhujun.com/api.youhujun.com/storage/logs/*')->cron('*/1 * * * *')->timezone('Asia/Shanghai');
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
default
'default' => env('BROADCAST_DRIVER', 'log'),
1
redis
//'connection' => 'default',
'connection' => env('REDIS_BROADCAST_CONNECTION','default'),
1
2
2