本书是我在多个真实的项目中用到的技术,会不断的扩充或更新。由于 Thinkphp6 功能细节甚多,所以本书不能面面俱到,而是实录了开发过程中可能遇到关键的问题,有了这些细枝末节,会对`Thinkphp6`有一个启发。
## ThinkPHP6 的运行环境
* PHP >= 7.1.0,兼容`PHP8.1`
### 安装Composer
本项目同时在`Win10`、`Linux`和`Mac OS X`下开发,故列出`Thinkphp6`各平台上的安装步骤。
### Linux 或 Mac OS命令行:
Linux用户不要使用`apt install composer`, 这样安装的是低版本的composer,请使用下面的命令行安装最新版的composer。
~~~
curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
~~~
### Microsoft Windows 10:
~~~
php -r "copy('https://install.phpcomposer.com/installer', 'composer-setup.php');"
php composer-setup.php
php -r "unlink('composer-setup.php');"
~~~
如果不习惯命令行安装的话,可以到`composer`官网`https://getcomposer.org/download/`下载可视化软件。
### Mac OS:
除了使用命令行的方式安装,也可以通过`brew install composer`安装,当然这之前,你需要先按照`brew`(MacOS下软件包管理工具)。`brew`的安装方法见下。
~~~
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
~~~
### 更改安装源:
如果你之后的命令操作很慢,可能是网络不太好(大部分的软件都在国外的服务器上),你可以采用下面的步骤,更改成国内的下载源。
打开命令行窗口(Microsoft Windows用户)或控制台(Linux、Mac 用户)执行如下命令:
~~~
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/
~~~
### 安装稳定版
在命令行下面,切换到`WEB`根目录下面并执行下面的命令:
~~~
composer create-project topthink/think <project_dir>
~~~
这里的`<project_dir>`就是要开发项目的根目录,根据实际情况改写。
安装成功后会给出类似下面的提示。
~~~
... 此处省略 N 行...
12 package suggestions were added by new dependencies, use `composer suggest` to see details.
Generating autoload files
> @php think service:discover
Succeed!
> @php think vendor:publish
Succeed!
6 packages you are using are looking for funding.
Use the `composer fund` command to find out more!
~~~
### 更新`ThinkPHP6`
如果之前已经安装过,切换到项目的根目录,执行:
~~~
composer update topthink/framework
// 全部更新,务必备份好 `vendor` 目录
composer update
~~~
更新操作会覆盖`thinkphp`核心目录,但不会影响`app`目录,因此不要在核心框架目录之外编写你的代码或者放置第三方类库。这可能会在以后的升级中被覆盖。
### 开发模式
在开发阶段,在根目录建立一个`.env`文件,内容参见`.example.env`,并开启调试模式。上线部署后直接删除`.env`文件即可。`.env`文件支持支持定义多个环境变量配置文件,配置文件命名规范为:
~~~
.env.example
.env.testing
.env.develop
~~~
然后,需要在入口文件中指定部署使用的环境变量名称:
~~~
// 执行HTTP应用并响应
$http = (new App())->setEnvName('develop')->http;
$response = $http->run();
$response->send();
$http->end($response);
~~~
调试模式的参数见下:
~~~
APP_DEBUG = true
// 其余部分视情况可删除
~~~
也可以使用命令操作,如下。
~~~
cp .example.env .env
~~~
### 测试运行及部署
在实际部署中,应该是绑定域名访问到`public`目录,安全起见,一定要确保其他目录不在`WEB`目录下面。下面给出`Nginx`的配置代码,供参考。
~~~
server {
listen 80;
server_name localhost;
root /var/www/<project_name>/public;
index index.html index.htm index.php;
location / {
if (!-e $request_filename) {
//多入口需要配置多行
//rewrite /install.php(.*)$ /install.php?s=$1 last;
rewrite ^(.*)$ /index.php?s=$1 last;
break;
}
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
#fastcgi_pass unix:/var/run/php/php7.4-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
~~~
当看到浏览器出现如下信息,表示安装成功。
![](https://img.kancloud.cn/fd/31/fd313c680d92daeba5fe1a09dbf2568c_534x364.png)
- 搭建ThinkPHP6的开发环境
- 配置ThinkPHP6
- 必要的基础知识(basic)
- MVC开发模式
- 控制器(controller)
- 数据库(database)
- 模型(model)
- 模型关联(relation)
- 视图(view)
- Session
- Cookie
- 缓存(cache)
- 上传(upload)
- 验证器(validate)
- 验证码(captcha)
- 命令行(command)
- 服务器部署(deploy)
- 数据备份(backup)
- 数据同步(synchronization)
- 订阅服务(subscribe)
- PHP 易混淆知识点
- 助手函数
- MySQL规范
- Redis 规范
- office插件 phpoffice
- 拼音插件 pinyin
- 日期插件 datetime
- 消息插件 amqp
- 产品部署环境的搭建
- PDF 等杂项处理
- 文件上传
- 常用扩展
- flc/dysms
- 使用示例 ①
- 使用示例 ②
- qiniu/php-sdk
- 简介
- 使用示例
- 使用示例 2 ②
- liliuwei/thinkphp-jump
- 扩展介绍
- 下载扩展
- 使用方法
- topthink/think-captcha
- 安装扩展
- 验证码显示
- 更换验证码
- 验证码校验
- 验证码配置
- 自定义验证码
- phpoffice/phpspreadsheet
- 数据写入表格
- 读取表格数据
- topthink/think-queue
- 安装
- 自定义函数
- 任务类
- 带有日志的任务类