Composer不能直接安装FuelPHP,因其自2015年停更、官方仓库已归档、依赖Git submodules而非Composer自动加载,正确方式是git clone + submodule update,并注意权限、路径及PHP版本限制。

Composer 不能直接安装 FuelPHP 框架,因为 FuelPHP 官方早在 2015 年就停止维护,且其核心设计不依赖 Composer 自动加载机制(早期基于手动 autoloader.php + fuel/core/bootstrap.php)。强行用 composer create-project 或 require 会失败或导致运行时类找不到。
为什么 composer create-project fuelphp/fuelphp 会报错
FuelPHP 的官方 GitHub 仓库 fuelphp/fuelphp 已归档(Archived),Packagist 上的 fuelphp/fuelphp 包也早已废弃,不再更新。尝试执行该命令会出现:
Could not find package fuelphp/fuelphp with stability stable.
或拉取到一个空壳/过期分支(如 v1.7.x),但缺失 fuel/core、fuel/packages 等关键子模块 —— 因为 FuelPHP 使用 Git submodules 管理核心与包,而 Composer 默认不递归初始化 submodule。
- FuelPHP 的
composer.json仅用于开发依赖(如测试工具),不是框架分发载体 -
vendor/下不会生成fuel/目录结构;实际框架代码必须放在项目根目录下的fuel/ - 所有
fuel/core、fuel/app、fuel/packages都是硬路径引用,不走 PSR-4 自动加载
正确部署 FuelPHP 的唯一可靠方式:Git 克隆 + submodule 初始化
必须使用 Git 获取完整源码,并显式更新 submodule。这是官方文档(archive.fuelphp.com)唯一支持的方式。
立即学习“PHP免费学习笔记(深入)”;
git clone https://github.com/fuel/fuel.git myproject cd myproject git checkout 1.8/develop # 推荐使用最后活跃分支(非 master) git submodule update --init --recursive
完成后目录结构应包含:
-
fuel/core/(核心框架) -
fuel/app/(你的应用代码) -
fuel/packages/(ORM、Oil 等可选包)
注意:composer install 仍需执行,但仅用于安装 dev 依赖(如 PHPUnit、CodeSniffer),不影响运行 —— FuelPHP 启动不依赖 vendor/autoload.php。
部署后必须检查的三个路径权限与配置
FuelPHP 对文件系统权限敏感,尤其在 Linux 生产环境。以下三项不正确会导致 500 错误或白屏:
-
fuel/app/cache/、fuel/app/logs/、fuel/app/tmp/必须可写(Web 用户,如www-data) -
fuel/app/config/config.php中的'base_url'要匹配实际访问路径(如/myproject/或/) - Web 服务器 DocumentRoot 必须指向
public/目录(不是项目根目录),否则index.php无法正确加载fuel/core/bootstrap.php
Apache 示例配置片段(确保启用 mod_rewrite):
AllowOverride All Require all granted
如果坚持要用 Composer 管理部分依赖(如数据库驱动)
可以保留 composer.json,但只能用于补充组件,不能替代 FuelPHP 自身结构:
- 添加 PDO 扩展封装:运行
composer require doctrine/dbal,然后在fuel/app/classes/database.php中手动集成(FuelPHP 原生用DB::,不自动识别 Composer 类) - 避免
composer require fuelphp/*—— 所有fuelphp/*包(如fuelphp/upload)都已过时且无维护 - 升级 PHP 8+ 会直接失败:FuelPHP 最高兼容 PHP 7.4,
fuel/core/classes/arr.php中的array_merge()用法在 PHP 8.0+ 报Deprecated
真正需要现代 PHP 框架时,应迁移至 Laravel、Laminas 或 CodeIgniter 4 —— FuelPHP 的路由、ORM、安全机制均已落后于当前实践。











