【图书介绍】《ThinkPHP 8高效构建Web应用》-CSDN博客
Composer是PHP用来管理依赖关系的工具。它使用JSON格式的配置文件来描述项目的依赖关系,然后根据配置文件自动下载并安装所需的依赖。Composer工具的使用可以大大提高PHP项目的开发效率,并确保项目的依赖关系始终保持一致。
Composer的优点
Composer的优点如下:
- 自动化依赖管理:Composer可以自动下载并安装所需的依赖,从而简化了PHP项目的开发过程。
- 依赖关系管理:Composer可以根据配置文件自动解决依赖之间的冲突,确保项目的依赖关系始终保持一致。
- 包管理:Composer可以提供一个统一的包管理平台,方便开发者查找和使用第三方库。
Composer的安装
Composer提供了两种安装方式:全局安装和项目安装。
1. 全局安装
全局安装是将Composer安装到系统环境变量PATH所包含的路径,然后就能够在命令行窗口中直接执行composer命令了。
下面是全局安装Composer的步骤:
1)下载Composer
从Composer的官方网站下载Composer的安装文件。建议使用阿里云的镜像地址https://mirrors.aliyun.com/composer/composer.phar下载。
- 将Composer安装到系统环境变量PATH所包含的路径下面。
- 验证Composer安装是否成功。
在命令行窗口中执行composer --version命令,如果能够正确输出Composer版本号,则表示Composer安装成功。
2. 项目安装
项目安装是将Composer安装到项目的特定目录下面,然后只能在该目录中使用composer命令。下载完composer.phar之后复制到项目根目录,然后执行php composer.phar --version命令验证安装结果。
3. 基于项目的依赖管理
Composer是基于项目进行依赖管理的,这意味着每个项目都有自己的依赖关系,Composer不会将依赖安装到全局的PHP目录下。
Composer使用JSON格式的配置文件来描述项目的依赖关系。该配置文件通常被命名为composer.json,位于项目的根目录下。
composer.json文件的结构如下:
{
"name": "my-project",
"description": "My first PHP project",
"require": {
"monolog/monolog": "^2.2"
}
}
在上述配置文件中,"require"键指定了项目所依赖的包。"monolog/monolog"包是PHP的一个日志库,版本号为2.2或更高。
要安装项目的依赖,可以使用composer install命令。该命令会根据composer.json文件中的配置自动下载并安装所需的依赖。
初始化ThinkPHP 8应用
要想初始化一个ThinkPHP 8应用到chapter04目录(即创建一个名字为chapter04的项目),可以执行下列命令:
composer create-project topthink/think chapter04
ThinkPHP 8支持一个项目下部署多个应用的多应用模式,也支持经典的一个项目部署一个应用的单应用模式,就笔者多年工作经验来看,一般使用单应用模式足以满足大多数的场景。如果有多应用的需求,可以考虑分开多个单应用项目,因此本书主要介绍单应用模式的开发。
1. 目录结构
执行成功后会创建如下的项目结构:
├── .example.env 示例环境变量配置
├── .gitignore Git忽略文件配置
├── .travis.yml travis流水线配置
├── LICENSE.txt 项目协议
├── README.md 项目自述文件
├── app 应用源代码
├── composer.json Composer依赖声明
├── composer.lock Composer版本锁
├── config 项目配置
├── extend 扩展类库目录
├── public Web根目录
├── route 路由定义
├── runtime 应用的运行时目录(可写)
├── think 命令行入口文件
├── vendor 依赖包
└── view
2. 运行项目
默认情况下,应用会自带一个.example.env文件,需要重命名为.env才能生效。该文件是为了解决多环境部署问题而产生的,不能加入版本控制系统。
假如我们有开发环境、测试环境、生产环境,那么我们需要准备3份.env文件。
下面是笔者本地开发环境使用的.env配置:
【示例4-1】
APP_DEBUG = true # 开启框架调试模式
DB_TYPE = mysql
DB_HOST = 127.0.0.1
DB_NAME = test
DB_USER = root
DB_PASS = 111111
DB_PORT = 3306
DB_CHARSET = utf8mb4
DEFAULT_LANG = zh-cn
执行以下命令运行PHP自带的Web服务器:
php think run