从 XSD 生成 PHP 类?[已关闭]

2022-08-30 17:54:47

世界上有没有JavaBeans或JAXB的PHP的类似物?是否可以从 XML 架构生成 PHP 类?

通常的做法是将 API 发布为 XSD 架构。Java和C#的人可以通过直接从XSD生成类来获得优势。PHP有相同的工具吗?


答案 1

我现在正在解决这个问题,一旦它达到更不稳定的状态,就会立即释放该工具。查看此处 https://web.archive.org/web/20111026063725/http://mikebevz.com/xsd-to-php-tool/

Upd.我刚刚发布了第一个工作原型,它与UBL 2.0模式和一个简单的模式一起工作得很好,但更严肃的测试正在进行中。如果您发送正在使用的架构,我将不胜感激,所以我会将它们包含在测试套件中。

Upd.2. XSD2PHP 达到 0.0.5 版本。检查 https://github.com/moyarada/XSD-to-PHP 进度


答案 2

使用 XSD 类生成器的主要原因是

  1. 获取编译时检查
  2. 一种比普通的旧XML API更简单的语法
  3. 在 IDE 中自动完成。

现在将其与PHP进行对比。PHP没有编译时检查,它支持动态方法/属性。这消除了上述两个主要原因,除非您确实需要自动完成,否则这不会成为问题。换句话说,有理由在PHP中使用XSD类生成器,这可能也是不存在的原因。

我的建议是使用PHPs Simple XML,它可以创建属性以在运行时动态匹配XML。如果根据 XSD 文件验证 XML,然后创建一个简单的 XML 对象,则 XML 对象结构就包含了方法和属性,而无需生成代码。PHP中一个非常好的方法。

请注意,我并没有说SimpleXML与生成的XSD类相同,当然不是。但它非常接近,使用和API方面。你最终仍然会做一些类似事情的事情。$company->employee[2]->firstname


推荐