Administrator
发布于 2025-06-25 / 3 阅读
0
0

thinkphp全新项目的构建流程(有坑)

1,进入需要按照的父级目录,执行下面的命令

composer create-project topthink/think=6.* tools

composer require topthink/think-view # 视图引擎

composer require topthink/think-multi-app # 多模块支持

composer require topthink/think-migration # 数据库迁移

composer require topthink/think-validate # 验证器

全局中间件里打开session,不然会出错。

做一些基础的配置。

 // 默认应用
    'default_app'      => 'admin',
    // 默认时区
    'default_timezone' => 'Asia/Shanghai',

    // 开启自动多模式
    'auto_multi_app' => true,
    // 开启应用快速访问
    'app_express' => false,

路由配置中的,html的后缀删除掉。、

把controller这个控制器删除掉,因为是 多应用的模式。

应用中的目录结构。

主要是路由。

<?php
// +----------------------------------------------------------------------
// | 路由设置
// +----------------------------------------------------------------------

use think\facade\Route;

// 登录相关路由
Route::rule('login', 'admin/login/index', 'GET');
Route::rule('login', 'admin/login/check', 'POST');
Route::rule('logout', 'admin/login/logout', 'GET');

// 需要登录验证的路由
// 首页路由
Route::rule('/', 'admin/index/index', 'GET')->middleware('admin_auth');
Route::rule('index', 'admin/index/index', 'GET')->middleware('admin_auth');
Route::rule('console', 'admin/index/console', 'GET')->middleware('admin_auth');

// 订阅用户管理路由
Route::rule('subscriber/index', 'admin/subscriber/index', 'GET')->middleware('admin_auth');
Route::rule('subscriber', 'admin/subscriber/index', 'GET')->middleware('admin_auth');
Route::rule('subscriber/delete', 'admin/subscriber/delete', 'POST')->middleware('admin_auth');
Route::rule('subscriber/batch_delete', 'admin/subscriber/batchDelete', 'POST')->middleware('admin_auth');
Route::rule('subscriber/add_to_tag', 'admin/subscriber/addToTag', 'POST')->middleware('admin_auth');
Route::rule('subscriber/get_all_filtered_ids', 'admin/subscriber/getAllFilteredIds', 'POST')->middleware('admin_auth');

里面的内容是这个格式。

数据库的配置,

环境变量

传教一个环境变量的文件就可以了。

创建这个格式的数据库

nginx服务器的配置:

网站的根目录是public目录。

nginx文件新增配置文件。

location / {

try_files $uri $uri/ /index.php?$query_string;

index index.html index.htm index.php;

autoindex on;

if (!-e $request_filename) {

rewrite ^(.*)$ /index.php?s=/$1 last;

break;

}

}

cd C:\phpEnv\server\nginx\conf\vhosts\cert

"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" genrsa -out server.key 2048

"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" req -new -key server.key -out server.csr -subj "/C=CN/ST=Beijing/L=Beijing/O=Company/CN=tools.abc.com"

"C:\Program Files\OpenSSL-Win64\bin\openssl.exe" x509 -req -days 365 -in server.csr -signkey server.key -out server.crt

在命令行安装这个方式生成ssl文件。

安装好的ssl,

会显示不安全。不过没关系。本地的证书都这样。

将后台的ui组件 复制到对应的目录下。

如果要用

utf8mb4

这个charset的话,不仅在数据库创建的时候需要创建这个

还需要在tp的 配置文件中,修改才可以

CHARSET = utf8mb4

创建数据库的时候用 utf8mb4_unicode_ci


评论