# 基础配置

初次接触一个新项目时,会给人一种一筹莫展的感觉,尤其是一个全新的未知的项目,首页我们拿到一个新项目(或新框架),首页我们先看下项目框架的具体架构和设计思路,在上一章节《目录结构》中我们做了详细的介绍,这里我们不做扩展,本章节我们重点介绍下框架的基础配置;

# 项目依赖

框架使用Composer作为依赖包管理工具,在开始使用项目前请务必安装好第三方依赖库,以便项目在实际运行过程中出现缺少依赖或者莫名的报错问题(切记),框架默认集成的依赖如下:

"php": ">=5.6.0",
"topthink/framework": "5.1.*"
1
2

特别说明

项目实际开发过程中如需引入其他依赖,请自行通过 Composer 安装;

# 环境变量

系统环境变量配置文件.env,系统运行所需的参数如有需要都可以作为环境变量参数存在,内容如下:

//调试模式
app_debug = true
//应用Trace
app_trace = false

// 数据库配置
[database]
type = mysql
hostname = 127.0.0.1
database = rxthink-vue-pro5.1
username = root
password =
hostport = 3306
charset = utf8mb4
prefix = evt_
debug = true

// 缓存配置
[cache]
type = redis
host = 127.0.0.1
port = 6379
password =
prefix = evt51_

// 消息队列
[rabbitmq]
host = /
ip = 127.0.0.1
port = 5672
user = guest
password = guest

// 网址配置
[domain]
image_url = http://images.evtp5.1.pro

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

参数说明:

  • app_debug 表示是否开启调试模式,true是、false否;
  • database 为数据库连接相关配置,type:数据库类型、hostname:主机地址、database:数据库名、username:数据库账号、password:数据库密码、hostport:数据库端口号、charset:数据库字符编码、prefix:数据表前缀、debug:是否开启调试模式;
  • cache 此处为缓存相关配置;type:缓存模式,分为file文件缓存和redis缓存,根据需要自行设置;
  • domain 此处为域名相关配置,image_url 参数为图片域名,需要给当前图片域名配置虚拟主机,Apache和Nginx都可以,根据实际情况自行配置;

# 缓存配置

为了系统的性能提升和运行效率,框架底层已经友好的封装了继承了缓存功能,只需要开启即可,根据系统设计要求,框架目前支持两种缓存模式:文件缓存Redis缓存,缓存配置文件内容如下:

<?php

// +----------------------------------------------------------------------
// | 缓存设置
// +----------------------------------------------------------------------

return [
    // 默认缓存驱动
    'default' => env('cache.driver', 'file'),

    // 缓存连接方式配置
    'stores'  => [
        'file' => [
            // 驱动方式
            'type'       => 'File',
            // 缓存保存目录
            'path'       => '',
            // 缓存前缀
            'prefix'     => '',
            // 缓存有效期 0表示永久缓存
            'expire'     => 0,
            // 缓存标签前缀
            'tag_prefix' => 'tag:',
            // 序列化机制 例如 ['serialize', 'unserialize']
            'serialize'  => [],
        ],
        // Redis缓存配置
        'redis' => [
            // 驱动方式
            'type'       => 'redis',
            'host'       => env('cache.host', '127.0.0.1'),
            'port'       => env('cache.port', 6379),
            'password'   => env('cache.password', ''),
            'select'     => intval(env('cache.select', 0)),
            'timeout'    => env('cache.timeout', 0),
            // 全局缓存有效期(0为永久有效)
            'expire'     => env('cache.expire', 0),
            'persistent' => env('cache.persistent', ''),
            // 缓存前缀
            'prefix'     => env('cache.prefix', 'PRO_'),
            'tag_prefix' => env('cache.tag_prefix', 'tag:'),
            'serialize'  => [],
        ],
        // 更多的缓存连接
    ],
];

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
45
46
47

如以上内容所示,缓存驱动的模式从环境变量中获取env('cache.driver', 'redis')默认系统使用的是redis缓存,所以再使用之前,需要开启Redis服务的支持,根据缓存模式的不同,各自的参数及配置值也是有所差异的,有关配置参数有不明白请查询相关资料;

# 常量配置

同时在模块内部我们需要对一些常规的常量进行配置,ThinkPHP5.1已经为我们做了架构层面的解析,我们只需要在模块内建立config文件夹,以admin模块为例,我们在config局部配置目录里面新建文件admin.php,在此文件中我们写入常规的配置参数,使用系统本身的获取配置的方式即可获取,如config('admin.gender_list'),系统admin.php详细内容如下:

<?php
// +----------------------------------------------------------------------
// | RXThinkCMF框架 [ RXThinkCMF ]
// +----------------------------------------------------------------------
// | 版权所有 2017~2020 南京RXThinkCMF研发中心
// +----------------------------------------------------------------------
// | 官方网站: http://www.rxthink.cn
// +----------------------------------------------------------------------
// | Author: 牧羊人 <1175401194@qq.com>
// +----------------------------------------------------------------------

/**
 * 后台配置文件
 */
return [

    /**
     * 性别
     */
    'gender_list' => [
        1 => '男',
        2 => '女',
        3 => '未知',
    ],

];

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

系统加载完成后,当前配置文件会默认加载到系统中,此时我们可以使用框架自带的获取配置参数的方式获取参数值,如:config('admin.gender_list')等等,以此类推,需要定义常量的参数都可以在此文件中进行配置;

# 中间件配置

在项目开发中经常会使用到中间件,我们可以自定义中间件并在配置文件 config\middleware.php 中进行配置,如下所示:

<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006~2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

// +----------------------------------------------------------------------
// | 中间件配置
// +----------------------------------------------------------------------
return [
    // 默认中间件命名空间
    'default_namespace' => 'app\\http\\middleware\\',
];


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20

系统中我们自定义了登录验证中间件并在此做了注册配置,可以借助命令 php think make:middleware 中间件名 自定生成文件并到指定目录 app\middleware\ 下,使用也非常简单,有两种使用方式如下所示:

// 中间件
protected $middleware = [
    'checkLogin'
];
1
2
3
4