我有一个非常大的Ruby on Rails应用程序,我想移植到PHP 5.2或者PHP 5.3(如果5.3已经发布).
我一直在寻找一种自动转换简单类和ERB模板之类的简单方法.我希望在语言太不相似的情况下,我必须自己做更复杂的事情.
有谁能建议这样做的方法?还是一个可以自动化其中一些的脚本?
编辑:
这样做有一个商业案例.这是否是一个合理的商业案例是另一个我不想在这里讨论的问题.我们有一个类似于Rails的框架 - 真正的问题是从Ruby转换到PHP而不是Rails转换为PHP.我并不是真的在寻找能够神奇地完成所有工作的东西,只是一些简单的东西会给你带来惊天动地.即使它所做的一切都改变了:
def somemethod somearg some.ruby.code end
至:
public function somemethod($somearg) { // some.ruby.code }
并在内容中留下内容作为红宝石的PHP评论,这仍然会使工作更轻松.
理想情况下,会有一些东西可以做到这一点或类似的东西.否则我可能会自己使用写入工具.
在任何两种语言之间移植应用程序是一项非常重要的工作.在这种情况下,由于php和ruby之间的差异,情况更糟.你不能希望得到任何类型的自动化过程.
如果你需要这样做(并且为什么它本身就是一个不同的故事),你可以尝试使用一个设计最接近rails的php框架.最好的候选者可能是Symfony或可维护的PHP框架.
我不知道 - 这项工作的理由是什么?
编辑:
在php中,一旦定义,许多符号都是全局的和不可变的.例如,无法重新定义类和函数,也没有名称空间支持.在ruby中,可以 - 并且非常常用 - 在运行时操作类.这是不可能自动转换的,并且在许多情况下只是不可能做到.即使你用phps魔术方法(__get
/ __set
/ __call
)攻击它,性能损失也会非常严重,以至于它会使你的应用程序无法使用.唯一的方法是手工完成.
您也许可以使用一个工具,例如rumld为您提供一个起点.另请参阅此内容,了解更多ruby-to-uml工具.