WebForms.php 2.1发布了。这次发布不是一次普通的移植——它的PHP代码是用DeepSeek从C#转换来的,转换结果又交给Qwen做了独立评估。整个流程走下来,才敢正式发布。
这个流程不是简单的“C# → PHP”,而是“C# → DeepSeek转换 → 人工审查 → Qwen评估 → 修正 → 测试 → 发布”。开发者把这次转换的完整过程和遇到的有趣问题写了出来。
WebForms.php是什么?
WebForms.php是WebForms Core的PHP后端实现。WebForms Core是一种基于Commander–Executor概念的服务器驱动Web技术:服务器生成描述UI操作和执行流程的命令,浏览器端的WebFormsJS负责解释和执行这些命令。
WebForms类本身不直接操作浏览器DOM,它只生成WebForms Core的命令结构。这种架构让WebForms类特别适合用多种编程语言实现——PHP版本就是为PHP应用提供同样的WebForms Core编程模型。
为什么要把C#实现转成PHP?
WebForms Core已经有多种编程语言的实现,其中C#版本是主要参考实现,包含大量方法,覆盖DOM操作、事件管理、Fetch操作、条件、循环、状态管理、存储、浏览器历史、WebSockets、SSE、模板、选择器、Action Controls等各类操作。
由于WebForms类主要生成命令字符串,底层逻辑不需要为每种语言重新设计。PHP实现的目标很明确:保留C#实现的行为和输出,同时让代码符合PHP的规范和语言能力。
DeepSeek转换:要求严格,不只是翻译语法
开发者把C#实现和相关的辅助类提供给DeepSeek,指令刻意定得很严格。DeepSeek被要求先分析结构、说明转换思路,核心要求是保留C#实现的行为,但PHP实现不能看起来像“用PHP语法写的C#代码”。
目标语言的规范被明确要求遵守。比如PHP的命名规范:C#的SetWidth(...)应该变成setWidth(...),参数也要遵循PHP风格,用$inputPlace、$width,而不是保留C#风格的$InputPlace、$Width。
语言特性也遵循同样的原则。如果C#用了PHP没有的特性,转换时需要用PHP的等价方案,而不是逐字照搬语法。
重载是转换中最有意思的问题之一
C#支持方法重载,PHP的处理方式不同。这个差异在转换过程中成了一个需要仔细处理的点——具体怎么解决的,开发者没有细说,但把它列为转换中“有趣的问题”之一。
整个流程走下来,DeepSeek负责转换,Qwen负责独立评估,人工审查和测试夹在中间。这种“AI转换+AI评估+人工把关”的组合,或许会成为跨语言移植的一种新范式。
热门跟贴