10

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

以前有人做过吗?

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

4

2 回答 2

8

你可以使用这个 bundle将你的遗留项目包装在一个全新的 sf2 项目中。这样,您将能够一次迁移一个项目,并且一旦您让包装器工作,就可以使用 sf2 开发新功能。您可能对这篇关于迁移的帖子感兴趣

于 2012-05-22T16:37:37.140 回答
5

以下是我将如何去做:

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

  • 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 项目的未来方式,最终您将获得一个更易于维护和支持的项目。

于 2012-05-22T12:17:34.977 回答