JavaBeans或JAXB for PHP的世界类似物吗? 是否可以从XML模式生成PHP类?
将API作为XSD架构发布是很常见的做法。 Java和C#人可以通过直接从XSD生成类来获得优势。 PHP有相同的工具吗?
答案 0 :(得分:8)
UPD。我刚刚发布了第一个工作原型,它可以在UBL 2.0模式和一个简单模式下正常工作,但更严重的测试正在进行中。如果你发送你正在使用的模式,我会很感激,所以我将它们包含在测试套件中。
UPD。 2. XSD2PHP达到版本0.0.5。检查https://github.com/moyarada/XSD-to-PHP
上的进度答案 1 :(得分:4)
使用XSD类生成器的主要原因是
现在将其与PHP进行对比。 PHP 不进行编译时检查, 支持动态方法/属性。这会导致上述两个主要原因无效,除非您确实需要自动完成,否则这不是问题。换句话说,有理由在PHP中使用XSD类生成器,这可能也是为什么不存在。
我的建议是使用PHP Simple XML,它在运行时创建属性以动态匹配XML。如果根据XSD文件验证XML,然后创建Simple XML对象,则可以使用方法和属性完成XML对象结构,而无需生成代码。 PHP中非常好的方法。
请注意,我并未声明SimpleXML与生成的XSD类相同,当然不是。。但它非常接近,使用和API方面。无论如何,你仍然会做$company->employee[2]->firstname
这样的事情。
答案 2 :(得分:1)
XSD架构通常用SOAP Web服务上的WSDL文件编写。
wsdl2php 是一个将WSDL(XSD)模式解析为php类的工具。它使用php的原生SoapClient作为它的客户端。
查看这篇文章,了解wsdl2php的快速教程和用法:
http://itworkarounds.blogspot.com/2011/10/simple-soap-client-with-wsdl2php-using.html
答案 3 :(得分:1)
来自网站:
PiBX是PHP的XML数据绑定框架。
使用PiBX,您可以根据可用的方式生成PHP类 XML的架构。这些类可用于编组信息 XML,无需考虑模式检查,约束或限制。
答案 4 :(得分:0)
我刚才看了一眼,我当然找不到一个。如果您的架构很简单,那么有一个hacked a simple version together用于平面架构的人。
这就是我所知道的。通常these guys擅长支持除主要语言以外的语言,但他们也不做PHP。
答案 5 :(得分:0)
DMS Software Reengineering Toolkit是可配置的代码生成机制,可用于处理任意正式文档作为输入。 DMS可用于生成 用于任意输出语言的代码。
我们使用它从DTD生成本机Java和COBOL XML读取器和编写器,DTD是架构的老兄。同样的想法很容易应用于PHP。
答案 6 :(得分:0)
这似乎做得不错[{3}}
我希望它处理枚举验证,但似乎在我的用例中正常工作。我发现它生成的META .yml文件很有帮助。
答案 7 :(得分:0)
答案 8 :(得分:-3)
XML是一种难以理解的语法。有些代码生成器使用XML作为输入,但除非XML是你唯一的选择,否则不要走这条路。我假设你想在开发时生成代码,然后将其上传到服务器。
然后,您可能需要定位多种语言(PHP + JavaScript / AJAX + HTML)。因此,最好使用多目标代码生成器,特别是如果生成器可以从单个定义中定位多个资产(例如,从数据库表定义,创建SQL代码,用于CRUD操作的HTML页面以及任何JS支持)码)。
我目前正在开发一种执行多目标的代码生成器。还没有产品可用,但您可以在http://www.abse.info查看其背后的方法。