迁移现有应用程序的好PHP框架是什么?


What is a good PHP framework for migrating an existing app to?

我最近开始使用一个PHP应用程序。应用程序中没有太多的设计——有一个前端控制器,但是,视图、模型和控制器代码通常混合在一起。

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

有没有一个好的框架,我可以只是一种插件,这样我就可以使用模型库,然后也许以后,将更多的应用程序集成到框架中?学说会是一个很好的工具吗?或者我应该设置自己的模型而不依赖第三方库?

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

你应该投资于重构(应用一些面向对象的原则,比如SOLID)并记录现有的代码,而不是试图找到一些神奇的框架。也许可以开始增量地添加一些单元测试。

注:学说是ORM(1)。X实现activerectord, 2。X——类似于数据绘制器)。orm是为那些极度懒惰、被误导或不理解SQL的人准备的。通过将现有的SQL查询移到orm代码中,只会使其变得更慢。此外,在迁移复杂查询时还会遇到问题。

我刚刚开始用Kohana重写一个站点,我对此非常满意。它似乎灵活而强大。它与CodeIgniter非常相似,但更现代一点(使用了更多最新的PHP特性)。

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

但是默认情况下,Codeigniter对于复杂的或多名称空间的应用程序不够灵活。

我正在使用Zend和Doctrine2迁移一个站点。该站点在任何意义上都不是面向对象的,但它被划分为逻辑视图和数据。迁移仍在进行中(新特性是用框架编码的,现有的特性只有在需要大的变化时才会被迁移)。

这两个框架都是非侵入式的,对我来说最有价值的事情就是标准化。