Flight框架已停止维护,不兼容PHP 8+和Composer v2.5+,安装会因废弃标记、PHP版本约束及classmap autoload冲突而失败;推荐改用slim/slim或klein/klein等活跃替代方案。

Flight 框架早已停止维护(官方仓库 last commit 是 2018 年),composer require mikecao/flight 在 PHP 8+ 和现代 Composer(v2.5+)下大概率失败,不是你操作错了,是它本身不兼容。
为什么 composer require mikecao/flight 会报错
常见错误包括:Root composer.json requires mikecao/flight ^1.3 -> could not be found 或 PHP version constraint does not match your PHP version。根本原因是:
- 原作者已将 Packagist 上的
mikecao/flight包标记为 abandoned - 其
composer.json中"php": ">=5.3.0"被 Composer v2 强制校验,而 PHP 8.1+ 不再隐式接受这种宽泛声明 - 没有发布过适配 PSR-4 自动加载的正式版本,依赖
classmap,与现代 autoload 行为冲突
还能不能用?临时绕过安装的方法
仅限本地实验或遗留项目迁移过渡,不建议用于新项目:
- 在
composer.json的require段手动添加:"mikecao/flight": "dev-master as 1.3.6" - 运行
composer update mikecao/flight --with-all-dependencies(加--with-all-dependencies是因为它的autoload.classmap需要强制重生成) - 安装后必须手动在入口文件中
require 'vendor/autoload.php',且不能依赖 Composer 的 PSR-4 自动发现——Flight 的核心类靠require硬加载,不是命名空间自动映射
更现实的选择:用替代方案代替 Flight
如果你要的是「轻量、无依赖、路由+响应即开即用」,这几个仍在活跃维护的替代品更可靠:
立即学习“PHP免费学习笔记(深入)”;
-
slim/slim(v4/v5):标准 PSR-7/PSR-17 实现,composer require slim/slim:^4.13即装即跑,PHP 8.1+ 原生支持 -
klein/klein:语法最接近 Flight($klein->respond('GET', '/', ...)),仍维护,composer require klein/klein:^4.0 - 纯手工方案:直接下载
flight/flight的 GitHub release ZIP(注意选 fork 后续维护的分支,如thephpleague/flight的非官方镜像),解压后require单文件——但这就脱离了 Composer 生态,无法管理依赖升级
真正卡住的往往不是“怎么装”,而是没意识到 Flight 的生命周期已经结束;强行拉取 dev 分支或修改 platform config 掩盖 PHP 版本问题,后续遇到 autoloading 失败或中间件不生效时会更难排查。











