当 AI 开始写 PHP:一个“没有魔法”的框架,如何消灭 Vibe Coding 里的幻觉

简介: 阿杰用「标准全家桶」让 AI 写下单接口,却被框架层层「魔法」绕晕。老陈甩来一个没有魔法的 PHP 框架——三行代码一次跑通,彻底告别手写样板。为什么 AI 在这里不再幻觉?

作者:姚杨 | 专栏:阿杰的技术成长

周五深夜,vibe coder 阿杰用「标准全家桶」让 AI 写下单接口,却被框架层层「魔法」绕晕,整晚调试无果。务实 CTO 老陈看不下去,甩来一个「没有魔法」的框架链接。阿杰半信半疑换上,没想到三行代码一次跑通——路由、响应、落库一气呵成,彻底告别手写样板。他正琢磨「正式立项改名会不会很麻烦」,老陈神秘一笑:「一条命令的事。」到底这条命令做了什么,能让模板瞬间变成你自己的项目?

周五晚 11 点,阿杰又卡住了

阿杰是个典型的「vibe coder」——他不直接写代码,他对着 AI 说人话。微信刚弹来产品消息:「周一前给运营做个内部下单工具,能查订单、能建订单就行。」阿杰心想这有何难,打开他最熟的 PHP 全家桶就开干。

那是套「业界标准」配置:服务容器、门面(Facade)、注解路由、依赖注入。AI 帮他生成了一段控制器,看起来人模狗样:

// AI 生成的「标准」控制器
public function store(Request $request)
{
   
    $user = Auth::user();                    // Facade 静态代理,背后是容器绑定
    $order = Order::create($request->validated()); // 依赖一个 FormRequest 类
    $order->save();
    return response()->json($order);          // 又包了一层响应封装
}

一跑就报错。Auth 门面背后那层静态代理 AI 没搞对,容器里没绑定这个服务;validated() 需要的 FormRequest 类压根没生成。阿杰在三个文件之间来回跳,AI 每改一次就引入一个新的「魔法」漏洞。凌晨两点,他终于承认:问题不在 AI,在于框架给 AI 挖了太多坑。

老陈甩来一个链接:「试试这个,没有魔法」

做 CTO 的老同学老陈,一句话点醒他:「你先别想什么 Service、Repository。就写个闭包。」

老陈发来的项目叫 php-vibe-coding-frame——一个单层 MVC 的极简 PHP 框架,专为 PHP-FPM 快速开发设计。没有 DI 容器、没有注解、没有 YAML 路由配置、没有 Composer autoload;路由即闭包,控制器即函数,写完即跑。

阿杰半信半疑 clone 下来,按文档跑了一条命令,浏览器里跳出了 hello world。

git clone https://github.com/smarty-kiki/php-vibe-coding-frame.git my-project
cd my-project
sh project/tool/start_development_server.sh # Docker 一键起开发环境

clone 下来,阿杰顺嘴问了一句:「目录还叫 php-vibe-coding-frame,正式立项改名不麻烦?」老陈乐了:「一条命令的事。」他指了指 project/tool/naming_project.sh:

sh project/tool/naming_project.sh my-project

「它会把 nginx、supervisor、Caddy 的配置文件名,连同 README、CLAUDE.md 里所有项目名占位符,一次性替换成 my-project。模板秒变你的项目,连文档都帮你改好——基于这套模板初始化新项目,基本零摩擦。」

三行代码,第一次跑就通了

老陈说:「你那个下单需求,我就写个闭包。」阿杰照着写:

if_post('/order', function () {
   
    $order = order::create(input('user_id'), input('amount'));
    return $order; // 返回实体 → 自动 JSON;闭包结束 → 自动落库
});

他盯着屏幕:没有 ->save(),没有 response()->json(),没有注入。 闭包返回实体,框架自动序列化成 JSON;闭包一结束,unit_of_work() 自动把新订单 INSERT 进库。第一次跑,就成了。

阿杰愣了一下——他花了一整晚在「标准框架」里和魔法搏斗,在这个框架里,三行代码解决了。

为什么 AI 在这里不再「幻觉」

老陈在语音里笑:「这框架的核心哲学就一句话——框架退后一步,让意图站到前面。 它对 AI 友好,是因为它对人友好。」

他点了几个设计:

  • 没有魔法:没有 __call 代理、没有 Facade 静态代理、没有注解解析。Ctrl+Click 能追到源码,grep 能找到所有引用。AI 的静态分析不会被元编程绕晕。
  • 意图即结果:闭包返回数组就是 JSON,返回字符串就是 HTML。AI 看一眼就知道输出是什么,不用猜 response()->json() 的封装。
  • 一个文件就是一个功能:路由、参数校验、业务调用全在一个闭包里。改一个功能,改一个文件。AI 不用在 Controller → Service → Repository 的调用链里迷路。
  • 自动持久化:unit_of_work() 自动包裹所有路由闭包。你只管 create、赋属性,闭包结束自动写库,不用记 save()/flush() 的时机。

「过去十年我们攒了一堆『为了人类可维护性』的模式,」老陈说,「接口隔离、依赖反转、DI 容器——前提是项目大到人类必须切块。但 AI 能在单个文件里理解全部逻辑,这些中间层对它来说就是噪音。分层越多,AI 幻觉的注入点越多。 这个框架主动做了减法:这不是阉割,是剪枝。」

阿杰后来拿它干了三件事

  1. 运营下单工具(就是那个周五的需求)——一个下午交付,周一正常用。
  2. 小程序后端 API 服务——毫秒级延迟,不用路由/配置缓存预热,PHP-FPM 原生友好。
  3. 快速验证业务想法——想法到代码的路径最短,写完即跑。

它最适合:中小型项目、快速原型、API 服务、内部工具。它不适合需要完整组件系统、复杂事件总线的超大型应用——那种场景,上 Laravel 更合适。框架不替你做架构决策,它只是把摩擦降到最低。

和「标准框架」的对照

维度 php-vibe-coding-frame Laravel
路由 闭包直接写在 controller/*.php routes/web.php 指向 Controller 类方法
控制器 闭包即控制器 Controller 类 + 方法
DI 无,依赖显式 include 服务容器自动注入
ORM 自研 ActiveRecord + 工作单元 Eloquent
配置 PHP 数组 + 环境覆盖 .env + config/*.php
类加载 class map,O(1) include Composer PSR-4
启动开销 仅 include ~10 个核心文件 数百类 + 数十 ServiceProvider
AI 友好度 高(无魔法,静态可追溯) 中(魔法层易致幻觉)

尾声:早知道,昨晚能多睡四小时

周一早上,阿杰把下单工具交给运营,顺手给老陈发了句:「早知道有这框架,昨晚能多睡四小时。」老陈回:「框架不背锅,选对工具才省时间。去 Star 一下,下次别再跟魔法较劲了。」

如果你也在用 AI 写 PHP,却总被框架的「魔法」绕晕,不妨试试这个把意图放在第一位的框架:

git clone https://github.com/smarty-kiki/php-vibe-coding-frame.git
cd php-vibe-coding-frame
sh project/tool/start_development_server.sh # 打开 http://localhost 看 hello world

项目完全开源,仓库地址:

https://github.com/smarty-kiki/php-vibe-coding-frame

欢迎 Clone、Star,也欢迎来提 Issue 和 PR——一起把「让 AI 一次跑通」这件事,做得更彻底。

目录
相关文章
|
2月前
|
人工智能 应用服务中间件 PHP
让 AI 拥有「手」和「眼」:我把 Claude 关进一个 PHP 容器后,Vibe Coding 才算真正闭环
Vibe Coding 想真正闭环,AI 得有自己的「手」和「眼」。把 Claude 关进一个 PHP 容器:端口全映射、历史可复用、环境随便折腾,交付和验收才算落地。
111 4
|
11天前
|
人工智能 JSON 安全
Windows 下 Claude Code 落地全指南:从安装配置到避坑优化
本文详解Windows下Claude Code的完整落地指南:涵盖WinGet/脚本/手动三种安装方式、对接阿里云Qwen等国内模型的配置、全界面与AI输出中文化、权限弹窗优化、长上下文卡顿(Stalled/Brewed)的性能调优,所有配置代码可直接复制使用,助你快速避坑、高效开发。(239字)
199 3
Windows 下 Claude Code 落地全指南:从安装配置到避坑优化
|
1月前
|
人工智能 前端开发 JavaScript
我终于能用 GPT-6 了!实测一波,Codex 要杀疯了?
GPT-6 Astra 实战测评,4 大项目实战,覆盖 AI 编程能力和 Computer Use 电脑操作能力,看看号称全世界最智能的模型,在 Codex 中的使用体验到底如何?和 Claude Fable 5 比起来怎么样?
322 1
|
SQL 人工智能 安全
重新思考 Data Agent:为什么“独立 ChatBI 已死”,轻量语义网关 DatI 给出新解法
DatI(Data Intelligence) 是连接 AI Agent 与企业数据库 的轻量级语义网关 —— 仅需接入数据库、配置语义信息、按需启用预置工具与参数化 SQL 工具,即可发布 MCP 服务,灵活地接入用户的 Agent 或任意 MCP Host
180 0
|
4天前
|
人工智能 测试技术 开发工具
从零部署 DeepSeek Harness:AI 智能体运行框架,安装步骤、运行模式选型与代码集成解析
大模型对话产品已经非常普及,但绝大多数对话产品仅仅停留在文本问答层面,模型只能输出文字,无法真正读写本地文件、执行终端命令、自动拆分多步骤任务完成复杂工作。想要让大模型真正操作本机环境,就需要一套Agent运行时框架。DeepSeek Harness(简称DSH),就是2026年8月开源的Agent运行框架,目前处于开发者预览阶段,它的核心思想是**模型负责思考推理,Harness负责执行真实环境操作**。项目底层基于Cordis插件架构,模型适配、工具集、会话管理、沙箱权限、存储、Agent主循环全部以插件形式实现,开发者可以直接在配置层替换、新增、删减模块,拥有极高的扩展自由度。
133 1
|
15天前
|
人工智能 JavaScript API
阿里云百炼Qwen3.8‑Omni‑Flash模型能力拆解:免费100万Tokens
阿里云发布Qwen3.8‑Omni‑Flash——原生全模态大模型,支持1M长序列及音视频理解、生成与编辑、视频问答等Agentic能力;免费体验100万Tokens,兼容OpenAI协议,开箱即用。(239字)
266 1
|
16天前
|
人工智能 自然语言处理 安全
阿里云千问办公 QwenWork 完整科普:核心能力盘点、典型场景、价格套餐与问题答疑
在AI技术快速落地办公场景的当下,市面上绝大多数智能工具依旧停留在问答对话、文本摘要、简单文案改写层面,只能完成碎片化单点任务。企业员工处理一份完整业务工作时,往往需要同时开启多款工具,文档处理、数据分析、素材创作、网页制作分属不同软件,中间内容需要反复复制粘贴,即便借助通用大模型生成内容,输出成果还需要大量二次格式调整,才能达到交付标准。同时企业内部的数据分散在聊天记录、审批单据、本地文档、业务平台,普通AI工具无法直接读取内部业务信息,每一次任务都要人工复述背景条件,法务、财务、研发这类垂直岗位,还需要编写冗长提示词才能拿到相对可用结果,AI办公落地的实际门槛长期居高不下。
196 1
|
18天前
|
人工智能 自然语言处理 运维
吃透阿里云 Qwen3 系列大模型:全维度能力解析、API 开发实操、项目落地与选型参考
通义千问Qwen3系列完成了从对话问答工具到智能体执行引擎的重要升级,依托MoE混合专家架构、百万级超长上下文、原生全模态融合、全链路Agent四大核心技术突破,搭建起梯度完整的模型家族。不同档位模型覆盖从个人轻量使用到企业复杂业务的全部需求,依托百炼平台,开发者无需搭建底层算力环境,通过简单API调用就可以快速把AI能力嵌入自有业务系统。
232 3
|
22天前
|
人工智能 自然语言处理 API
阿里云百炼平台指南:入口、免费Tokens额度领取及常见问题一站式指南
阿里云百炼是企业级一站式AI大模型服务平台,集成Qwen全系列及DeepSeek、Kimi、GLM等百余款主流模型,覆盖文本、图像、视频、语音全模态能力;支持API调用、低代码工作流与智能体构建,开通即赠超7000万Tokens(90天有效期),零门槛快速上手。
623 3

热门文章

最新文章