直接安装 yii2 2.0.48.5 会失败,因其未发布到 packagist;需通过自定义 repositories 指向 github tag 的 tar.gz 地址手动引入,并注意 php 版本限制(7.4–8.1)、autoload 路径及安装后删除 vendor 中的 .git 目录。

直接装 2.0.48.5 会失败,因为这个版本没发布到 Packagist
Yii2 官方在 2023 年底停止维护 2.0.x 分支,2.0.48.5 是个特殊版本:它只存在于 GitHub release 页面,从未被推送到 Composer 的主仓库(Packagist)。所以执行 composer require yiisoft/yii2:2.0.48.5 会报 Could not find package yiisoft/yii2 in a version matching "2.0.48.5"。
用 repositories 指向 GitHub tag 才能装上
必须手动告诉 Composer:别查 Packagist,去 GitHub 拉这个 tag。操作分两步:
- 在项目根目录的
composer.json里添加自定义源:
"repositories": [
{
"type": "package",
"package": {
"name": "yiisoft/yii2",
"version": "2.0.48.5",
"type": "library",
"dist": {
"url": "https://github.com/yiisoft/yii2/archive/refs/tags/2.0.48.5.tar.gz",
"type": "tar"
},
"autoload": {
"psr-4": { "yii\": "framework/" }
}
}
}
]
- 然后运行:
composer require yiisoft/yii2:2.0.48.5 --no-update(加--no-update避免立即触发依赖冲突) - 再执行:
composer update yiisoft/yii2
注意:dist.url 必须是 GitHub 的 tar.gz 下载地址,不能写成 git+https 或 zip;路径里的 framework/ 是解压后源码所在子目录,不能错。
2.0.48.5 依赖 PHP 7.4–8.1,高版本 PHP 会报错
这个旧版 Yii2 不支持 PHP 8.2+,如果环境是 8.2 或 8.3,composer install 可能卡在 autoload 生成,或运行时报 Deprecated: Return type of yiiaseComponent::offsetGet() should either be compatible with ArrayAccess::offsetGet(mixed $offset): mixed 类似警告(实际是 fatal error)。
- 检查当前 PHP 版本:
php -v - 降级到 PHP 8.1(推荐)或保持 7.4–8.1 范围内
- 若无法换 PHP,得手动 patch
vendor/yiisoft/yii2/framework/base/Component.php,补全所有mixed返回类型声明——但这属于临时缝合,不建议长期用
装完还得删掉 vendor/yiisoft/yii2 里的 .git 目录
因为是通过 tar 包安装,Composer 会在 vendor/yiisoft/yii2 下保留原始 GitHub 仓库的 .git 文件夹。这会导致后续 git status 显示大量未跟踪文件,甚至干扰项目 Git 操作。
- 装完立刻执行:
rm -rf vendor/yiisoft/yii2/.git(Linux/macOS)或手动删除 Windows 下的该文件夹 - 否则某天你
git add .,一不小心就把整个 Yii2 源码当新文件提交了
旧版本依赖链脆弱,2.0.48.5 的核心问题是它游离在标准发布流程之外——不是“怎么装”,而是“怎么绕过发布机制装”,每一步都得对准它的非标属性。











