每隔一段时间,就能够看到有人在问:
PHP 是不是已经过时了?
特别是 AI 爆发以后,大家讨论最多的是 Python、JavaScript,PHP 好像越来越没有存在感。
但真实情况是:PHP 依然运行着大量网站、商城、管理后台和业务系统。
PHP 不需要自己训练大模型。
它只需要通过 API 接入 AI,就能让原有系统快速拥有:
今天,我们就用 PHP 写一个简单的 AI 问答接口。
一、项目准备
本次任务需要:
建议不要把 API Key 直接写进代码。
可以先配置环境变量:
export AI_API_KEY=”你的API密钥”
然后创建一个 ai.php 文件。
二、编写 PHP AI 客户端
<?phpclassAiClient{ public function__construct( private readonly string $apiKey, private readonly string $baseUrl, private readonly string $model ) { } public functionchat(string$question): string { $payload = [ 'model' => $this->model, 'messages' => [ [ 'role' => 'system', 'content' => '你是一名专业的 PHP 编程助手,请用简洁、准确的中文回答。', ], [ 'role' => 'user', 'content' => $question, ], ], 'temperature' => 0.7, ]; $curl = curl_init($this->baseUrl . '/chat/completions'); curl_setopt_array($curl, [ CURLOPT_POST => true, CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Authorization: Bearer ' . $this->apiKey, 'Content-Type: application/json', ], CURLOPT_POSTFIELDS => json_encode( $payload, JSON_UNESCAPED_UNICODE ), CURLOPT_TIMEOUT => 60, ]); $response = curl_exec($curl); if($response === false) { throw new RuntimeException( '请求失败:' . curl_error($curl) ); } $statusCode = curl_getinfo($curl, CURLINFO_HTTP_CODE); curl_close($curl); $result = json_decode($response, true); if($statusCode >= 400) { $message = $result['error']['message'] ?? '未知错误'; throw new RuntimeException('AI 接口错误:' . $message); } return $result['choices'][0]['message']['content'] ?? 'AI 暂时没有返回内容'; }}
这段代码完成了三个核心工作:
三、调用 AI 接口
继续在文件底部加入:
$apiKey = getenv('AI_API_KEY');if(!$apiKey) { exit('请先配置 AI_API_KEY 环境变量');}$client = new AiClient( apiKey: $apiKey, baseUrl: 'https://你的接口地址/v1', model: '你的模型名称');try { $answer = $client->chat( '请解释 PHP 中 interface 和 abstract class 的区别' ); echo $answer;} catch(Throwable $exception) { echo '程序运行失败:' . $exception->getMessage();}
运行:
如果配置正确,AI 就会返回关于 PHP 接口和抽象类的解释。
至此,我们已经用 PHP 完成了一个最基础的 AI 问答程序。
四、它为什么值得做?
你可能会觉得:
“这不就是调用了一个接口吗?”
没错。
但真正有价值的地方,恰恰不是调用接口本身,而是把 AI 接入已有业务。
假设你已经有一个 PHP 商城,可以让 AI:
假设你维护的是企业管理系统,可以让 AI:
假设你运营的是内容网站,还可以让 AI:
AI 负责理解和生成,PHP 负责用户、权限、数据与业务流程。
两者并不冲突,反而非常适合组合使用。
五、正式项目还需要注意什么?
演示代码距离生产环境还有一段距离。
真正上线时,至少要考虑下面几个问题。
1. 保护 API Key
不要把密钥写进代码,更不要提交到 Git 仓库。
建议使用:
2. 设置超时与异常处理
AI 接口可能超时、限流或者临时不可用。
程序必须设置连接超时和请求超时,并准备友好的错误提示。
3. 控制调用成本
不要让用户无限制调用。
可以根据登录用户设置:
4. 保存必要日志
建议记录:
但要注意:日志中不要保存密码、密钥和敏感隐私数据。
5. 防止提示词攻击
如果 AI 可以读取数据库、操作文件或者调用业务工具,就不能直接执行模型生成的内容。
所有高风险操作都必须经过:
AI 可以提出建议,但最终权限仍然应该掌握在业务系统手中。
六、PHP 还有机会吗?
我的答案是:
PHP 当然还有机会,但只会写传统增删改查,可能不够了。
接下来的 PHP 开发者,不一定要研究如何训练大模型,却应该学会:
语言只是工具。能够解决问题、创造价值,才是开发者真正的竞争力。
我们下一站见。