ThinkPHP8学习篇(一):安装与配置

ThinkPHP有非常多的功能库,我的学习策略很明确:不贪多求全,只掌握最核心的20%功能,解决80%的业务需求。所有学习都围绕一个目标:够用就行。遇到复杂问题时,再具体学习对应的内容。

作为ThinkPHP学习的第一篇文章,本篇文章将记录ThinkPHP基础内容的学习,包括:安装、目录结构与配置。


一、安装

ThinkPHP 8.x 要求 PHP 的版本要大于等于 8.0.0。

1、安装 Composer

Composer 是 PHP 用来管理依赖(dependency)关系的工具。可以在自己的项目中声明所依赖的外部工具库(libraries),Composer 会帮你安装这些依赖的库文件。稍后会使用 Composer 来安装 ThinkPHP。

在 phpStudy 中安装 Composer 是非常简单的,只需要在软件管理中找到它,然后点击安装即可。我这里选择的是可以安装的最新的 2.5.8 版本。

2、安装稳定版

第一次安装,在命令行下面,切换到WEB根目录下面并执行下面的命令:

bash 复制代码
composer create-project topthink/think 应用名称

该命令将创建应用根目录,目录名称就是应用名称。

如果之前已经安装过 8.0 版本,那么切换到该应用根目录下面,然后执行下面的命令进行更新:

bash 复制代码
composer update

在 phpStudy 中,点击 网站->管理->composer,会弹出 composer设置 对话框,它会自动选中当前安装的 composer 版本,然后点击 "确认" 按钮,就会打开命令行界面,且该命令行界面已经切换到WEB根目录下。

在打开的命令行界面中,我们输入安装 ThinkPHP 命令,创建第一个应用,应用命名为:first_tp:

bash 复制代码
composer create-project topthink/think first_tp

3、开启调试模式

应用默认是部署模式,在开发阶段,通过修改环境变量APP_DEBUG开启调试模式,上线部署后切换到部署模式。

通过 create-project 安装后在根目录会自带一个.example.env文件(环境变量示例),我们需要将该文件更名为 .env 文件并根据要求进行修改,该示例文件已经开启调试模式。所以我们现在需要做的就是将该文件更名为 .env 文件就可以了。

4、测试运行

现在要做最后一步来是验证能否正常运行。该步操作还是在命令行中执行,具体如下:

bash 复制代码
cd first_tp # 首先进入 ThinkPHP 应用根目录
php think run # 执行该命令启动 ThinkPHP 应用

执行完成命令后,会在启动消息中看到服务器的访问地址,默认为:http://localhost:8000。访问该地址,如果看到了欢迎页面,那证明安装成功了。

也可以通过 -p 参数来更改默认启动的端口号:

bash 复制代码
php think run -p 端口号

注意:在实际部署中,需要绑定域名访问到 ThinkPHP 应用根目录下的 public 目录。

在 ThinkPHP 官网文档中,提供了关于 ThinkPHP 的开发规范,关于开发规范的内容在本文中就不做记录了,可以通过官网 开发规划 进行查看。

二、目录结构

ThinkPHP 8.0 版本开始支持多应用模式部署,所以实际的目录结构取决于采用的是单应用还是多应用模式,默认安装后的目录结构就是一个单应用模式。本文将记录单应用模式。下面我们一起来看下单应用模式的目录结构。

bash 复制代码
www  WEB部署目录(或者子目录)
├─app           应用目录
│  ├─controller      控制器目录
│  ├─model           模型目录
│  ├─ ...            更多类库目录
│  │
│  ├─common.php         公共函数文件
│  └─event.php          事件定义文件
│
├─config                配置目录
│  ├─app.php            应用配置
│  ├─cache.php          缓存配置
│  ├─console.php        控制台配置
│  ├─cookie.php         Cookie配置
│  ├─database.php       数据库配置
│  ├─filesystem.php     文件磁盘配置
│  ├─lang.php           多语言配置
│  ├─log.php            日志配置
│  ├─middleware.php     中间件配置
│  ├─route.php          URL和路由配置
│  ├─session.php        Session配置
│  ├─trace.php          Trace配置
│  └─view.php           视图配置
│
├─view            视图目录
├─route                 路由定义目录
│  ├─route.php          路由定义文件
│  └─ ...   
│
├─public                WEB目录(对外访问目录)
│  ├─index.php          入口文件
│  ├─router.php         快速测试文件
│  └─.htaccess          用于apache的重写
│
├─extend                扩展类库目录
├─runtime               应用的运行时目录(可写,可定制)
├─vendor                Composer类库目录
├─.example.env          环境变量示例文件
├─composer.json         composer 定义文件
├─LICENSE.txt           授权说明文件
├─README.md             README 文件
├─think                 命令行入口文件

默认安装后,app目录下会包含下面的文件。

bash 复制代码
├─app           应用目录
│  │
│  ├─BaseController.php    默认基础控制器类
│  ├─ExceptionHandle.php   应用异常定义文件
│  ├─common.php            全局公共函数文件
│  ├─middleware.php        全局中间件定义文件
│  ├─provider.php          服务提供定义文件
│  ├─Request.php           应用请求对象
│  └─event.php             全局事件定义文件

BaseController.php、Request.php 和 ExceptionHandle.php 三个文件是系统默认提供的基础文件,位置可以随意移动,但注意要同步调整类的命名空间。如果不需要使用 Request.php 和 ExceptionHandle.php文件,或者要调整类名,记得必须同步调整 provider.php 文件中的容器对象绑定。

provider.php 服务提供定义文件只能全局定义,不支持在应用下单独定义。

三、配置

对于单应用模式来说,配置文件和目录很简单,根目录下的 config 目录下面就是所有的配置文件。每个配置文件对应不同的组件,当然也可以增加自定义的配置文件。

bash 复制代码
├─config(配置目录)
│  ├─app.php            应用配置
│  ├─cache.php          缓存配置
│  ├─console.php        控制台配置
│  ├─cookie.php         Cookie配置
│  ├─database.php       数据库配置
│  ├─filesystem.php     文件磁盘配置
│  ├─lang.php           多语言配置
│  ├─log.php            日志配置
│  ├─middleware.php     中间件配置
│  ├─route.php          URL和路由配置
│  ├─session.php        Session配置
│  ├─trace.php          Trace配置
│  ├─view.php           视图配置
│  └─ ...               更多配置文件
│  

单应用模式的 config 目录下的所有配置文件系统都会自动读取,不需要手动加载。如果存在子目录,需要通过 Config 类的 load 方法手动加载,例如:

php 复制代码
// 加载config/extra/config.php 配置文件 读取到extra
\think\facade\Config::load('extra/config', 'extra');

可以直接在相应的全局或应用配置文件中修改或者增加配置参数,如果要增加额外的配置文件,直接放入配置目录即可(文件名小写)。