PHP-ML 已于2021年停止维护并从Packagist移除,GitHub仓库归档,不再兼容PHP 8.1+;推荐用Python(scikit-learn+Flask/FastAPI)做模型,PHP仅调用接口;或选用math-php等轻量统计库。

PHP-ML 官方已停止维护,composer require php-ml/php-ml 会失败
直接运行 composer require php-ml/php-ml 会出现 Could not find package php-ml/php-ml 或 404 错误。这不是你网络或配置问题,而是因为该库自 2021 年起已从 Packagist 移除,GitHub 仓库 php-ai/php-ml 也已归档(Archived),不再接受 PR、不发布新版本、不兼容 PHP 8.1+。
如果你看到某些博客或旧教程仍推荐它,请注意:那些内容已失效。强行通过 "minimum-stability": "dev" + "prefer-stable": false 拉取历史 commit,会导致依赖冲突(如 symfony/console 版本不兼容)、类型错误(void 返回值缺失)、甚至运行时 fatal error。
替代方案:用 scikit-learn + Python 做模型,PHP 只负责调用
PHP 本身不是机器学习主力语言,硬在 PHP 中跑算法既慢又难维护。更可行的路径是——让 Python 负责训练和预测,PHP 通过进程调用或 HTTP 接口对接。
-
scikit-learn支持完整的监督/无监督学习流程,模型可保存为.joblib或.pkl - 用
Flask或FastAPI封装成轻量 API,例如POST /predict接收 JSON 特征数组,返回预测结果 - PHP 中用
file_get_contents()或cURL请求该接口,无需任何 ML 依赖 - 若必须本地执行,可用
exec('python3 predict.py ' . escapeshellarg(json_encode($features))),但需确保 PHP 进程有权限且 Python 环境就绪
如果坚持要在 PHP 中做简单统计建模,试试 math-php 或 php-statistics
这两个库仍在维护,专注数学计算与基础统计,不吹“机器学习”,但能解决真实小规模需求:
立即学习“PHP免费学习笔记(深入)”;
composer require markrogoyski/math-php
例如线性回归:
$dataset = [[1, 2], [2, 4], [3, 6], [4, 8]]; $regression = new \MathPHP\Statistics\Regression\Linear($dataset); $prediction = $regression->predict(5); // 返回 10
注意:math-php 不支持决策树、SVM、神经网络;php-statistics 更轻量,但仅含描述统计与假设检验。
别指望它们处理图像、NLP 或高维稀疏特征——那不是 PHP 该干的事。
Composer 安装失败时,先检查这三件事
避免把问题归咎于“PHP-ML 不行”,而忽略本地环境干扰:
- 运行
composer clear-cache,再试composer require—— 缓存损坏会导致假性 404 - 确认
composer show -p输出中没有php-ml相关包残留,有则手动删掉vendor/php-ai和composer.lock中对应行 - 检查 PHP 版本:PHP-ML 最后兼容版本要求
php: ^7.1,若你用 PHP 8.2,连autoload都会报Deprecated: Required parameter $x follows optional parameter $y
真正卡住的地方,往往不是“怎么装”,而是没意识到这个库已经不在现代 PHP 生态里了。











