【问题标题】:Porting a website from Symfony 1.4 to 2.0将网站从 Symfony 1.4 移植到 2.0
【发布时间】:2012-05-22 10:57:24
【问题描述】:

我有一个巨大的网站,用 symfony 1.4 编写(以一种非常糟糕的方式) 现在,我被要求对导航流程进行一些重大更改,添加一些功能等等。 考虑到这项工作,我想知道是否最好做出将整个网站移植到 symfony 2.0 的激进决定,但我不确定这会有多难。

以前有人做过吗?

您对要遵循的模式、教程或文档或其他内容有什么建议吗?

【问题讨论】:

    标签: php symfony1 symfony symfony-1.4 porting


    【解决方案1】:

    您可以使用this bundle 将您的旧项目封装在一个全新的 sf2 项目中。这样,您将能够一次迁移一个项目,并且一旦您让包装器工作,就可以使用 sf2 开发新功能。 你可能对this post about migrating感兴趣

    【讨论】:

    • 看起来不错,我还需要从旧的推进器转移到新的人性化原则2,所以这真的可以派上用场:)
    【解决方案2】:

    下面是我的做法:

    你需要先学习和研究一些东西:

    • HTTP 基础知识
    • 大量使用的 PHP 命名空间
    • Symfony2 文档
    • Symfony2 文档
    • Symfony2 文档
    • PHPUnit 文档

    那么当你掌握了 Symfony2 的窍门后,你需要找出可以从旧项目中重用的内容:

    模型、业务逻辑? 你在 symfony 中使用过 Doctrine 吗?如果是,请查看如何将您的实体移植到 Doctrine2,并了解其中的差异。如果你使用 Propel,我会考虑切换到 Doctrine2 而不是使用 PropelBundle,至少在你习惯 Symfony2 之前。你可以找到更好的 Doctrine2 文档和示例代码。

    您还需要将旧的助手类转换为 Symfony2 服务。

    观看次数? Symfony2 使用 Twig 作为模板引擎,但你可以使用纯 PHP。

    控制器? 这应该有点类似于 symfony。 Symfony2 的流程与 HTTP 流程相匹配,这意味着您获得了一个 Request 对象,并且必须重新获得一个 Response 对象。

    这真的取决于我们旧项目的结构有多好。 Symfony2 与 1.0-1.4 完全不同。我可能不会称它为移植,而是重写 - 但是,如果您的旧项目结构良好,您可能可以重用很多。

    如果没有真正看到您的代码,就不可能给出一个很好的答案来说明它有多难。这是非常可行的,但没有简单的路线。恕我直言,Symfony2 是 PHP 项目的未来之路,最终您将获得一个更易于维护和支持的项目。

    【讨论】:

    • 是的,这和我想的一样。我同意这将是一个重写而不是一个移植,因为当前的项目(在 symfony 1.4 中)是一堆泥土/意大利面条代码和菜鸟编程。这是由不知道自己做了什么的人完成的。想想我花了两个多星期才弄清楚丑陋的结构化代码背后的病态逻辑……真是一场噩梦。现在我必须再次着手处理它,我真的很想在 symfony 2.0 中重写它
    • 我会说去吧,你以后会节省时间,请拥有一个真正的项目是学习新事物的良好动力。
    • 是的,你说的太对了 :) 现在我们拭目以待。如果预算允许我们.. 我肯定会坚持 2.0(带着 gr8 的乐趣)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    • 2011-04-03
    相关资源
    最近更新 更多