代码之家  ›  专栏  ›  技术社区  ›  Piotr Czapla

在意大利面条代码库的基础上使用什么PHP框架?

  •  8
  • Piotr Czapla  · 技术社区  · 15 年前

    我的团队必须维护一个写得非常糟糕的大型PHP应用程序。它是HTML、JavaScript和SQL的混合体,位于一个设计糟糕的大型数据库之上(例如,它有一个包含数百列的表)。代码库的唯一优点是它可以工作。

    我们一直在修复和重写其中的部分错误。

    我想为我们所做的重写提供一个结构,所以我考虑将MVC框架集成到代码库中。你能提出一个好的环境框架吗?

    下面列出了我希望从这样的框架中得到的东西:

    • API必须非常稳定。我们负担不起在每个版本上重写代码。
    • 自定义会话管理或至少使用标准的$\u会话[](以便能够与旧代码对话)。
    • 自定义身份验证。
    • 应该很好地支持使用原始SQL(很难用对象来表示数据库)。
    • 它不应该假定每个控制器都有一个表。
    2 回复  |  直到 13 年前
        1
  •  2
  •   Tim Lytle    13 年前

    我回信Zend只是想列出它如何满足您的特定需求:

    • API必须非常稳定。我们负担不起在每个版本上重写代码。

    如前所述,API在小版本之间趋于稳定。有变更的主要版本不应该很难集成。

    • 自定义会话管理或至少使用标准的$\u会话[](以便能够与旧代码对话)。

    Zend_Session 做你想要的。默认的会话存储区是$\u会话,Zend向其添加了名称空间概念。您现有的代码应该很好,任何新的代码都可以使用zend对象来确保没有变量名重叠。

    • 自定义身份验证。

    Zend_Auth 有一些认证后端,但它的设计允许您实现自己的认证。

    • 应该很好地支持使用原始SQL(很难用对象来表示数据库)。

    Zend_DB 实现表网关模式,该模式允许您通过对象访问数据;但是,您也可以直接使用SQL并将结果作为数组获取。

    • 它不应该假定每个控制器都有一个表。

    Zend_Controller Zend的MVC实现的其余部分对模型没有任何假设,这完全取决于您。我敢肯定有些人不喜欢这样,但MVC设计的一个领域在不同的项目之间有很大的差异,所以这完全取决于开发人员。您可以扩展一些DB类,或者只使用现有的DB访问代码。

    这是Zend框架中选择和选择心态的一个例子。你真的可以自己使用任何一个库。这对你的项目很有用。例如,您可以使用 Zend_View 如果没有其他的MVC类,只需将您的演示文稿移动到模板中。或者使用zend_auth替换现有的auth系统。使用Zend,您可以慢慢地将项目移动到一个更结构化的状态,一点一点地。

        2
  •  3
  •   Gordon Haim Evgi    15 年前

    为此,我建议使用Zend框架,因为它是一个粘合框架。有了ZF,您就不会被强迫去利用框架期望您如何使用它了。您可以选择您想要的,并逐步用ZF中的代码替换您的旧代码。它也支持你提到的所有事情。

    此外,我建议运行 phpqatools.org 以支持调试和重构。

    框架比较