我们有一个Symfony 1.4应用程序,希望升级到Symfony 4。这是可能的吗?还是必须重新编写应用程序?
我们询问了附近的一家软件公司,他们告诉我们必须重新编写应用程序。
我们有一个Symfony 1.4应用程序,希望升级到Symfony 4。这是可能的吗?还是必须重新编写应用程序?
我们询问了附近的一家软件公司,他们告诉我们必须重新编写应用程序。
免责声明:我编写并维护一个名为 Rector 的开源工具,用于处理自动化即时迁移。
自2018年以来,借助抽象语法树(AST),这些迁移变得更加容易。这项技术可以在读取文件/打印文件的速度下更改无限数量的文件中的一个模式。
例如,从Symfony 1到Symfony 5的1000个控制器所需的时间与1个控制器相似。您只需要编写迁移规则。其中一些已经在Rector中准备好了,例如Symfony 2.8通过Symfony 5 - 请参见Github上的Rector集。
从1.4升级到4是一个奇迹。
即使您可以升级到版本2,然后再升级到版本3,直到这里都很好,但版本4完全不同,因此我建议您直接重写代码,而不是浪费时间从一个版本升级到另一个版本。
对于仍然对此任务感兴趣的人,将Symfony 1.x应用程序迁移到现代的Symfony 4.x及以上版本(包括Symfony 5.x),我们公司也面临着完全相同的任务。我发现了这个GitHub项目,它详细介绍了如何使用Strangler Fig设计模式和Symfony在其网站上建议的Legacy Route Loader方法来完成此任务:
我可以保证这个方法是可行的,虽然你需要进行一些微调以使其适用于你特定的环境。但它应该足以让你完成90%的工作。