我接手了一个最初使用RoR编写的中型项目。权力决定了他们想要网络应用程序,“移植”到Symfony。
在查看了一些RoR代码之后,我怀疑RoR强烈地“影响”了Symfony,因为许多习语是共享的 - 所以我认为应用程序的“端口”应该是相当的可能(虽然不适合胆小的人)。
在没有讨论采用这种方法的智慧(或其他方面)的情况下,根据将RoR应用程序移植到Symfony应用程序所需的步骤,有人可以提供TODO的项目符号列表。
答案 0 :(得分:3)
我不能给你任何要点,更不用说从RoR到Symfony的移植指南,但我可以告诉你我将如何接近它。请记住,仅仅因为两个应用程序使用相同的设计模式,它们的实现可能会有所不同,因此您可能不得不调整大量代码,尽管有任何共享的习惯用法。
假设RoR项目包含UnitTests,我首先将所有测试移植到PHPUnit。从功能测试开始。由于问题域不随移植而改变,因此这些应与RoR中的相同。如果你不能立即实现它们,请将它们留空。重点是描述应用程序最终应该做什么。
一旦您记下所有功能测试,请查看使这些测试通过所涉及的组件。检查Symfony是否提供与您在RoR中使用的内容等效的实现。如果是,请移植适用的UnitTests。然后实现组件。重复,直到所有功能测试通过。
如果Symfony没有提供等价物,请提出替代方案。在这样做时,请记住,并非RoR中的所有内容都不一定是Symfony或PHP中的最佳选择,因此使用常识来寻找替代方案,即使这意味着偏离RoR的方式。
还要记住,Symfony可以与Zend Framework并排使用。虽然ZF根本没有在RoR之后建模,但是在Symfony不提供RoR等价物的情况下,您可能会发现它的组件很有用。
在旁注中,虽然Symfony受到RoR的启发,但实际上在PHP世界中尝试成为RoR的框架是CakePHP。既然你说你必须使用无关紧要的Symfony,但我想我提到了它。