我的工作,可以从CMS内容导出到,然后还可以以更新内容被重新导入CMS中的XML结构的导入/导出程序。清理程序导入/导出程序
昨天,我想出了一个原型一些探索性的编码。功能在那里,程序按预期工作。但功能基本上由3个方法组成(一个主要,一个递归用于导入,一个递归用于导出),每个方法跨越300行。该代码由一些嵌套的foreach
和while
和if
组成,并且程序性如此。
虽然它有效,但我有点担心程序的最终版本看起来更丑陋,因为特别是在导入方法中,为了将XML结构转换回数据库内容,需要使用许多特殊情况。
我在想如何OOP可以来帮助这里。目前我的方法是生成一个类似于DB行结构的树,并将其序列化为XML,并在导入时再次将XML序列化为基于数组的树结构。
它会更好,以封装的行为来创建对象的树?实际上,我发现使用数组结构非常方便,因为PHP在处理数组和序列化/反序列化方面很强大,非常容易。也许一种函数式编程风格的方法更适合于在OOP中强制执行......添加一个可以从和转换为对象的复杂Serializer似乎更加膨胀。
我知道,没有绝对的答案,你如何才能办理进口/出口等特殊情况,而无需创建两个巨大的方法,基本上做的一切结构像我这样的脚本,我会感兴趣的内容。
你看了SimpleXML的http://ca.php.net/simplexml和的DomDocument http://ca.php.net/DomDocument类? – dnagirl 2010-04-27 12:30:47
@dnagirl:是的,我知道这些。但序列化本身不是我困扰的问题。它更多关于创建要序列化的数据的代码结构。例如,在导入时我加载XML,将其转换为数组树。然后我迭代该数组树,处理一些特殊情况并将内容重新插入数据库中。 – Max 2010-04-27 12:33:08
请参阅我将加载XML,并使用XSLT将其转换为我想要的。 PHP然后变得非常普遍和短。它需要确定的是要使用哪个XSLT。 – dnagirl 2010-04-27 12:35:21