应使用 composer create-project 初始化 Yii2 项目,如 composer create-project --prefer-dist yiisoft/yii2-app-basic basic,避免手动 init 导致依赖、autoload 或插件配置错误;需确保 PHP ≥ 7.4、扩展齐全,清理 vendor 和 composer.lock 后重试,并配置国内镜像源加速安装。
直接用
初始化 Yii2 项目,别手动
Yii2 官方不推荐从空项目开始手配
,因为依赖关系、autoload 配置、脚手架目录结构都已固化。手动初始化容易漏掉
插件或错误设置
,导致后续
失败或
命令不可用。
实操建议:
运行
(基础版)或
(高级版)
加
显式指定稳定版,避免因默认
是
导致拉取到不兼容的 dev 分支
路径名(如
)会自动生成对应目录,别写成绝对路径或带空格名称
首次运行后,
就可直接执行,不用再跑
脚本(除非你选了高级版且需多环境配置)
安装失败常见报错:「require yisoft/yii2 ~2.0.43」不满足或「Class 'Yii' not found」
这通常不是 Composer 本身问题,而是 PHP 环境或锁文件残留导致的依赖解析冲突。Yii2 对 PHP 版本、扩展(如
、
)有硬性要求,且
若来自旧项目,可能锁定过期的子依赖。
实操建议:
确认 PHP 版本 ≥ 7.4(Yii2.0 最低要求),运行
和
删掉已有
和
目录再重试,不要复用其他项目的 lock 文件
如果提示
不满足,说明本地已装更高版本(如 2.0.45),但某子包声明了严格范围——此时加
仅作临时调试,生产环境应升级对应子包
多因
没被入口文件引入,检查
开头是否有
不适合装 Yii2,它只适合 CLI 工具
有人想全局装
方便到处用,这是误解。
是给
、
这类命令行工具设计的,而 Yii2 是框架,必须按项目隔离安装——它的
规则、配置路径、Web 入口都绑定在项目根目录下。
Composer 2.9.6
Composer 2.9.6 是 PHP 生态中高效、稳定的依赖管理工具。此版本在性能与兼容性上进一步优化,改进了依赖解析算法,提升大型项目中的安装与更新速度。它支持并行下载任务,显著减少等待时间,并增强了与私有仓库及镜像源的交互稳定性。同时修复了多项命令行交互与内存使用相关的缺陷,确保在复杂依赖关系下依然可靠运行。无论是新项目初始化还是现有系统维护,Composer 2.9.6 都能为开发者提供流畅、精准的依赖管理体验。
下载
实操建议:
绝对不要运行
,它不会生成
,也不会配置自动加载
全局可装的是
(旧版 Yii2 需要,但已弃用)或
(加速插件),这些才属于真正意义上的全局辅助工具
若需多个 Yii2 项目共享扩展(如自研组件),应发布为独立包并
,而非试图“共用 vendor”
国内网络下
composer
install 卡在「Loading from cache」或超时
这不是 Yii2 特有问题,但新手常误以为是框架安装慢。本质是 Packagist.org 或 GitHub API 响应延迟,Composer 默认没开并发下载,且 asset 包(尤其是 bower-asset)走 GitHub Release,国内直连极不稳定。
实操建议:
换国内镜像源:
(注意:该镜像已停,改用
)
禁用 asset 插件(Yii2.0.14+ 默认不再需要):确认
中没有
,如有,先
加
参数看卡在哪一步,常见是等
的 API rate limit,此时可临时设
环境变量提升限额
首次安装完后,下次用
(而非
)能跳过依赖分析,快很多
事情说清了就结束。Yii2 的 Composer 安装难点不在命令本身,而在对 PHP 环境、依赖作用域和国内网络现实的准确预判。很多人反复重试却忽略
输出或残留的
,这才是最耗时间的地方。
composer create-projectcomposer initcomposer.jsonyiisoft/yii2-composer"minimum-stability"composer installyiicomposer create-project --prefer-dist yiisoft/yii2-app-basic basicyiisoft/yii2-app-advanced advanced--stability=stableminimum-stabilitydevbasicvendor/bin/yiiinitmbstringopensslcomposer.lockphp -vphp -m | grep -E 'mbstring|openssl|pdo|json'composer.lockvendor/require yisoft/yii2 ~2.0.43--ignore-platform-reqsClass 'Yii' not foundvendor/autoload.phpweb/index.phprequire __DIR__ . '/../vendor/autoload.php';composer global requireyiisoft/yii2composer globalphpunitlaravel/installerautoloadcomposer global require yiisoft/yii2vendor/bin/yiifxp/composer-asset-pluginhirak/prestissimocomposer require your-vendor/your-packagecomposer config -g repo.packagist composer https://packagist.phpcomposer.comhttps://mirrors.aliyun.com/composer/composer.json"fxp/composer-asset-plugin"composer global remove fxp/composer-asset-plugin-vvvgithub.comGITHUB_TOKENcomposer installupdatephp -mcomposer.lock