什么是用于将现有应用程序迁移到的优秀PHP框架?

时间:2011-10-13 18:41:56

标签: php frameworks refactoring doctrine

我最近加入了一个PHP应用程序。应用程序没有太多设计 - 有一个前端控制器,但视图,模型和控制器代码通常混合在一起。

我想慢慢开始重构代码,从将所有SQL查询移动到适当的模型开始。看了几个框架之后,似乎大多数框架的设置都是假设应用程序将使用该框架从头开发。

是否有一个好的框架,我可以使用插件,以便我可以使用模型库,然后可能稍后将更多的应用程序集成到框架中? Doctrine会成为这样的好工具吗?或者我应该在不依赖第三方库的情况下设置自己的模型?

4 个答案:

答案 0 :(得分:4)

如果你有一个现有的php应用程序,那么没有必要将它迁移到某个框架。框架可以帮助您更快地开发项目 - 您已经拥有了一个项目。此时,在您拥有的内容之上添加框架只会使您的应用程序变得更加复杂,而且很可能会变慢。

您应该投资重构(应用一些OOP原则,如SOLID)并记录现有代码,而不是试图找到一些神奇的框架。也许开始逐步添加一些单元测试。


P.S。 Doctrine是一个ORM(1.x实现了activerectord,2.x - 类似于数据映射器)。 ORM适用于非常懒惰,误导或不理解SQL的人。通过将现有的SQL查询移动到ORM代码,您将使它变得更慢。此外,迁移复杂查询时会遇到问题。就是不要这样做。

答案 1 :(得分:1)

我刚刚开始在Kohana重写一个网站,我很满意。它似乎灵活而有力。它与CodeIgniter非常相似,但更现代(使用了更多最新的PHP功能)。

答案 2 :(得分:0)

如果您只想使用MVC(不是HMVC或更难)框架来简单地使用现有应用程序,那么您应该触摸CodeIgniter。 ActiveRecords非常容易从现有的sql-queries重构。您甚至可以使用默认或手工制作的函数或类来在其模型中构建查询。

但默认情况下,Codeigniter对于困难或多名称空间应用程序来说不够灵活。

答案 3 :(得分:0)

我正在使用Zend和Doctrine2迁移网站。 该网站在任何意义上都不是OOP,但它在逻辑视图和dal之间划分。迁移仍在进行中(新功能使用框架编码,现有功能仅在需要进行大量更改时才会迁移。)

这两个框架都是非侵入性的,你得到的最有价值的东西就是标准化。