TP后端基础框架搭建(一)

1
2
3
4
5
//切换composer 为国内 阿里源
composer config -g repo.packagist composer 
 
//创建项目tp_base
composer create-project topthink/think tp_base

解析测试域名到项目

image.png

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
//tp多应用安装
composer require topthink/think-multi-app
 
//tp模板引擎
composer require topthink/think-template
composer require topthink/think-view
 
//tp验证码
composer require topthink/think-captcha
 
//tp翻页
composer require big-dream/think-paginator-driver
 
//tp whoops
composer require xiaodi/think-whoops
 
//tp log
composer require topthink/think-log
 
//tp 权限
composer require liliuwei/thinkphp-auth=2.0.*
 
//图片管理
composer require  intervention/image

1.使用多应用模式

1
2
3
4
//创建多应用
php think build index
php think build admin
php think build common

image.png

2.配置权限管理

配置权限管理前需要先把mysql的连接参数配置好

copy .example.env  到 .env 然后配置mysql连接参数

image.png

修改config下auth.php

1
2
3
4
5
6
7
8
9
10
11
return[
    // 权限设置
    'auth_config'            => [
        'auth_on'            => true,                      // 认证开关
        'auth_type'          => 1,                         // 认证方式,1为实时认证;2为登录认证。
        'auth_group'         => 'auth_group',        // 用户组数据表名
        'auth_group_access'  => 'auth_group_access'// 用户-用户组关系表
        'auth_rule'          => 'auth_rule',         // 权限规则表
        'auth_user'          => 'admin'             // 用户信息表
    ],
];

运行数据库导入文件吗,导入权限相关表

在admin应用下创建lang 多语言目录

admin应用下创建event目录->initConfig.php 初始化常量以及基础配置

注册到event文件里

image.png

创建admin下BaseModel以及Admin model

BaseModel 定义getLang方法,获取语言包,  success,err通用方法

model/Admin 创建admin表的模型 ,以及获取admin的方法

创建login的controller,view

copy 各种css,js



static 创建  app/admin目录 用来存放admin专用的一些css js文件


captcha需要打开gd2拓展

不输出验证码的话可以自己写一个验证码的function

1
2
3
4
5
6
//Captcha
public function captcha()
{
    ob_end_clean();
    return Captcha::create();
}

app/common.php 配置公共function

app/model.php 配置通用model类
登录成功

创建admin/index 首页controller和view

这个时候就要开始权限管理的配置了

因为在admin/index就会有menu展示,需要涉及到权限的东西

百度地图和腾讯地图互转

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
const bMapTransQQMap = function(lng,lat){
    let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
    let x = lng - 0.0065;
    let y = lat - 0.006;
    let z = Math.sqrt(x * x + y * y) - 0.00002 * Math.sin(y * x_pi);
    let theta = Math.atan2(y, x) - 0.000003 * Math.cos(x * x_pi);
    let lngs = z * Math.cos(theta);
    let lats = z * Math.sin(theta);
    return {
        lng: lngs+0.0005,
        lat: lats
    }
}
 
const qqMapTransBMap = function(lng,lat){
    let x_pi = 3.14159265358979324 * 3000.0 / 180.0;
    let x = lng;
    let y = lat;
    let z = Math.sqrt(x * x + y * y) + 0.00002 * Math.sin(y * x_pi);
    let theta = Math.atan2(y, x) + 0.000003 * Math.cos(x * x_pi);
    let lngs = z * Math.cos(theta) + 0.0065;
    let lats = z * Math.sin(theta) + 0.006;
    return {
        //经度
        lng: lngs-0.0005,
        //纬度
        lat: lats
    }
}
 
export default {
    bMapTransQQMap,
    qqMapTransBMap,
}