无尘阁日记

无尘阁日记

大概介绍下YII3框架所需环境信息,各种引入库、依赖环境的版本需求,领导需要这个,他要构建环境
2026-03-27

可以。你如果是给领导做“构建环境说明”,我建议直接按“基础环境 + 可选能力 + 推荐组合”来讲,既不空,也方便他拍板。

一、先给结论

Yii 3 已经正式发布,而且它和 Yii2 最大的区别是:Yii 3 不再是一个“大一统单体框架”,而是一个模块化包生态。官方站点写得很明确:Yii 3 面向 PHP 8.2 到 8.5,并提供 Web、API、Console 等模板;如果走 Docker 方案,官方模板要求 Docker Compose 2.24+。(Yii Framework)

二、领导最关心的基础环境

1. 必备运行环境

如果要搭一个标准 Yii 3 项目,最基础的东西就是这几项:

  • PHP:8.2 - 8.5

  • Composer:必须安装

  • Web 服务层:可走官方内置开发服务,也可走 Nginx/Apache + PHP-FPM

  • Docker 方案:Docker Compose 2.24+

  • 入口方式:Web 模板和 API 模板都支持 ./yii serve 启动开发环境 (yii3.yiiframework.com)

更直白一点说:
Yii 3 的硬门槛首先不是前端工具链,而是 PHP 版本。 当前官方模板已经把最低运行基线放在 PHP 8.2,所以如果公司机器还是 PHP 7.x 或 8.0/8.1,那就不建议直接上官方最新模板。(GitHub)

2. 最基础的 PHP 扩展

官方 Web 模板在 composer.json 里明确声明了基础依赖中包含 ext-filter;如果你要接数据库,则需要再按数据库类型安装对应 PDO 扩展。比如:

  • MySQL / MariaDB:pdo_mysql

  • PostgreSQL:pdo_pgsql

  • SQLite:pdo_sqlite

  • SQL Server:pdo_sqlsrv

而 Yii 的数据库基础包 yiisoft/db 本身也要求有 PDO。(GitHub)

三、官方模板默认会引入哪些库

这部分你可以理解成:Yii 3 的“框架能力”不是一包全塞给你,而是通过 Composer 拉一组官方包进来。

1. Web 项目模板默认核心库

官方 yiisoft/app Web 模板当前默认会带上这类核心库:

  • PSR 相关:psr/containerpsr/http-factorypsr/http-messagepsr/http-server-handlerpsr/log

  • HTTP 消息实现:httpsoft/http-message

  • Yii 核心能力:yiisoft/configyiisoft/definitionsyiisoft/diyiisoft/error-handler

  • Web 侧能力:yiisoft/httpyiisoft/input-httpyiisoft/request-provider

  • 路由:yiisoft/routeryiisoft/router-fastroute

  • 会话与视图:yiisoft/sessionyiisoft/viewyiisoft/yii-view-renderer

  • 应用运行器:yiisoft/yii-httpyiisoft/yii-runner-http

  • 控制台:symfony/consoleyiisoft/yii-consoleyiisoft/yii-runner-console

  • 其他常用能力:yiisoft/assetsyiisoft/csrfyiisoft/logyiisoft/html 等。(GitHub)

也就是说,领导如果问“Yii 3 需要装哪些库”,你可以回答:
它本质上是 Composer + 一组官方 yiisoft/* 的组合,而不是像老式框架那样“装一个框架包就结束”。(Yii Framework)

2. API 项目模板默认核心库

如果你们是做接口项目,官方 yiisoft/app-api 模板会在上面基础上再偏向 API 能力,常见会带:

  • yiisoft/data

  • yiisoft/data-response

  • yiisoft/hydrator

  • yiisoft/injector

  • yiisoft/request-body-parser

  • yiisoft/validator

它同样要求 PHP 8.2 - 8.5,并通过 yiisoft/yii-httpyiisoft/yii-runner-http 来跑 HTTP 应用。(GitHub)

四、数据库环境要求怎么说最合适

如果项目要落库,这里最好单独说,因为这是构建环境时最容易漏的部分。

1. 数据库基础包

yiisoft/db 是数据库抽象层,要求:

  • PHP 8.1 - 8.5

  • PDO 扩展

  • 并且必须至少安装一个数据库驱动包,比如 yiisoft/db-mysqlyiisoft/db-pgsqlyiisoft/db-sqliteyiisoft/db-mssql。(packagist.org)

2. 各数据库驱动要求

MySQL / MariaDB

  • 驱动包:yiisoft/db-mysql

  • 要求:PHP 8.1 - 8.5

  • 扩展:pdo_mysql

  • 数据库版本:MySQL 5.7+,或 MariaDB 10.4+。(packagist.org)

PostgreSQL

  • 驱动包:yiisoft/db-pgsql

  • 要求:PHP 8.1 - 8.5

  • 扩展:pdo_pgsql

  • 数据库版本:PostgreSQL 9+。(packagist.org)

SQLite

  • 驱动包:yiisoft/db-sqlite

  • 要求:PHP 8.1 - 8.5

  • 扩展:pdo_sqlitembstring

  • 数据库版本:SQLite 3+。(packagist.org)

SQL Server

  • 驱动包:yiisoft/db-mssql

  • 要求:PHP 8.1 - 8.5

  • 扩展:pdo_sqlsrv

  • 数据库版本:SQL Server 2017+。(packagist.org)

3. ORM / 迁移能力

如果项目要用 Active Record,对应包是 yiisoft/active-record;如果要做数据库迁移,用 yiisoft/db-migration。前者要求 PHP 8.1 - 8.5,后者支持主流数据库迁移。(packagist.org)

五、开发、测试、调试层常见依赖

官方模板的 require-dev 里,已经把常见开发工具链给你配出来了,主要包括:

  • Codeception 5:测试框架

  • PHPUnit 11

  • Psalm 6:静态分析

  • Rector 2:代码升级/重构

  • PHP CS Fixer 3:代码格式化

此外,Yii 3 的调试包 yiisoft/yii-debug 目前要求 PHP 8.1+。(GitHub)

六、Node、npm 要不要装

从官方 Web 模板和 API 模板当前的安装方式看,基础搭建流程是 Composer + ./yii serve 或 Docker,并没有把 Node/npm 列为官方模板的基础前置。也就是说:

  • 纯后端 / 标准 Web 项目起步:Node 不是硬性必备

  • 如果你们后面要接前端构建、Vite、Webpack、前后端分离资源编译:再按项目需要单独补 Node 环境

这个点很重要,因为很多领导会下意识把 PHP 项目也想成前端构建项目。Yii 3 官方模板的起步并不是那套逻辑。(GitHub)

七、给领导的“推荐环境组合”

如果让我站在企业落地角度给一套稳妥、不折腾、适合正式开发的建议,我会这么配:

1. 推荐方案(最稳)

  • 操作系统:Linux 服务器 / 开发机均可

  • PHP8.3

  • Composer:2.x

  • Web 服务:Nginx + PHP-FPM

  • 数据库:MySQL 8.0 或 PostgreSQL 15

  • 缓存:Redis(如项目需要)

  • 框架模板

    • 做网站/后台:yiisoft/app

    • 做接口服务:yiisoft/app-api

  • 容器化:Docker Compose 2.24+ 可直接上。(yii3.yiiframework.com)

为什么我推荐 PHP 8.3
因为官方支持区间是 8.2 - 8.5,8.3 通常处在一个比较舒服的位置:够新、够稳、生态兼容性也相对更平衡。这个属于工程上的推荐值,不是官方唯一指定值。官方硬约束仍然是 8.2 到 8.5。(yii3.yiiframework.com)

2. 高性能可选方案

Yii 3 官方站点还特别提到可运行在 RoadRunner、Swoole、FrankenPHP 这类 Worker Mode 环境里,用于减少重复初始化开销、提升性能。
这个不是“刚搭环境就必须上”的,但如果领导后面关心吞吐、并发、常驻内存模型,这就是 Yii 3 的一个亮点。(yii3.yiiframework.com)

八、你可以直接发给领导的简版话术

Yii3 环境建设建议:

  1. 基础语言环境:PHP 8.2 - 8.5,建议 PHP 8.3;Composer 2 必装。

  2. 项目模板:Web 项目用 yiisoft/app,API 项目用 yiisoft/app-api

  3. 运行方式:开发可直接 ./yii serve,容器化可用 Docker Compose,官方要求 2.24+。

  4. 数据库支持:通过独立驱动包接入,常见为 MySQL/MariaDB、PostgreSQL、SQLite、SQL Server;需安装对应 PDO 扩展。

  5. 默认核心依赖:Yii3 采用模块化 Composer 包体系,包含 DI、Config、Router、HTTP、ErrorHandler、Console、Session/View 等官方包。

  6. 测试/开发工具:官方模板默认带 Codeception、PHPUnit、Psalm、Rector、PHP CS Fixer 等开发工具链。

  7. 可选高性能模式:支持 RoadRunner、Swoole、FrankenPHP。(Yii Framework)


Yii 3 运维环境说明(精简版)

一、适用范围

本文仅说明 Yii 3 项目部署与运行 所需的关键运维环境,不涉及业务开发、代码结构和二次开发细节。Yii 3 已是模块化包生态,官方 Web 模板与 API 模板当前都要求 PHP 8.2–8.5。(GitHub)

二、基础运行环境

生产或测试环境至少应具备以下基础条件:

  • PHP:8.2–8.5

  • Composer:必须安装

  • Web 服务:Nginx / Apache 均可,常见为 Nginx + PHP-FPM

  • 官方 Docker 部署时:Docker Compose 2.24 及以上

官方模板本地安装明确要求先安装 Composer;若走官方 Docker 方案,则 Web 模板和 API 模板都要求 Docker Compose 2.24+。另外,官方明确提醒:Composer 执行所用的 PHP 版本,应与实际运行应用的 PHP 版本保持一致。(GitHub)

三、PHP 扩展要求

对运维最关键的扩展要求如下:

1. 基础必装

  • ext-filter

Web 模板与 API 模板的 composer.json 都将 ext-filter 列为必需扩展。(GitHub)

2. 数据库相关

如果项目接数据库,需按数据库类型安装对应 PDO 扩展。至少要有 ext-pdo;若使用 MySQL / MariaDB,则还需要 pdo_mysql。Yii 官方 MySQL 驱动包明确要求 ext-pdopdo_mysql。(Packagist)

四、数据库环境要求

如果项目采用 MySQL / MariaDB,官方数据库驱动当前支持:

  • MySQL 5.7+

  • MariaDB 10.4+

同时要求 PHP 版本位于 8.1–8.5 区间,并安装 pdo_mysql。对于运维来说,实际部署时只需确保:数据库版本达标、PDO 驱动安装完整、连接参数正确。(Packagist)

五、Web 目录与权限要求

官方模板的目录职责很明确:

  • public/:对外可访问目录,应作为 Web 根目录

  • runtime/:运行期生成文件目录,需要应用进程具备写权限

  • config/:环境配置目录

  • docker/:官方容器部署文件目录

因此运维侧部署时,应重点确认两件事:
第一,站点根目录指向 public/;第二,runtime/ 具备可写权限。(GitHub)

六、依赖安装方式

Yii 3 官方模板使用 Composer 安装依赖,不是传统“下载框架压缩包直接跑”的模式。Web 模板使用 composer create-project yiisoft/app,API 模板使用 composer create-project yiisoft/app-api。默认安装流程并未把 Node.js / npm 列为基础前置,因此从运维角度看,Node.js 不是 Yii 3 基础运行的必备项;是否安装,取决于项目是否额外引入前端构建链。(GitHub)

七、可选高性能运行方式

Yii 3 官方还支持在 RoadRunner、Swoole、FrankenPHP 等 Worker 模式下运行,以减少重复初始化开销、提升吞吐性能。这个能力属于 可选项,不是基础部署前提。若当前目标只是稳定上线,常规 Nginx + PHP-FPM 即可;若后续追求高并发和更高性能,再评估 Worker 模式。(Yii3 Framework)

八、运维建议配置

建议直接按下面标准准备环境:

标准部署建议

  • 操作系统:Linux

  • PHP:8.3

  • Web:Nginx + PHP-FPM

  • Composer:2.x

  • 数据库:MySQL 8.0 或 MariaDB 10.4+

  • PHP 扩展:ext-filterext-pdopdo_mysql

  • Web 根目录:public/

  • 可写目录:runtime/

之所以建议 PHP 8.3,是因为它位于官方支持区间 8.2–8.5 内,版本较新,同时通常更利于后续维护与兼容。官方硬性要求仍是 8.2–8.5。(GitHub)

九、给运维的最终结论

运维只需要抓住这几件事:

  1. PHP 必须 8.2–8.5,建议 8.3。(GitHub)

  2. Composer 必装,且 Composer 所用 PHP 版本要与运行版本一致。(GitHub)

  3. 至少安装 ext-filter;如接 MySQL,再装 ext-pdopdo_mysql。(GitHub)

  4. 站点根目录指向 public/runtime/ 目录必须可写。(GitHub)

  5. 若走官方 Docker,Docker Compose 版本不得低于 2.24。(GitHub)

  6. 默认不必强制配 Node.js;是否安装看项目是否额外需要前端构建。(GitHub)