我有一个很大的PHP项目,在其中我不使用任何框架(也不使用MVC模式),并且我希望逐步将其移植到Laravel上,而几乎不停机。
我正在寻找使已移植到Laravel的代码透明迁移的方法,同时保留功能较旧的纯PHP代码。
例如,Laravel使用类和方法(例如Input::get())“覆盖”超全局变量($ _GET,$ _ POST等)。我简单的PHP项目当然直接使用了 super 全局变量。如何在Laravel下克服这些“不兼容性”而又不必立即重写我的所有PHP代码?否则,如果您认为此任务太难了,是否有任何PHP框架由于其内部结构而使此任务变得更容易?

更新:
在laravel中仍然可以使用超全局变量。我遇到了一个偷偷摸摸的错误:Laravel内部将error_reporting设置为E_ALL并显示了一个自定义错误堆栈跟踪页面,即使对于PHP E_NOTICE,也没有明确指定错误级别(这是一个NOTICE错误),即使默认情况下已完成PHP错误报告消息引擎。对于Laravel核心开发人员来说,我认为这种“部分沉默”的行为通常会误导任何试图将其代码移植到其框架上的PHP开发人员。

最佳答案

TL; DR

不要这样

常见的误解

如果您有一个现有项目,那么将其嫁接到一个框架上将不会给您带来任何好处。框架而不是有点神奇,这奇迹般地使代码变得更好或使站点运行更快。

相反,框架是工具,通过已经完成“常见任务”,(据说)可以帮助您在更短的时间内编写项目。另外,副作用是,停止在项目中使用框架非常困难(例如,如果该框架已停产),因为现在您的所有代码都被紧密地焊接到了框架上。

这就是为什么您当前遇到以下问题的原因:



  • 你不能。完全按照Laravel框架的要求重写它,否则它将无法正常工作。


  • 不是,没有。所有流行的框架都希望您重写代码,以便将其绑定(bind)到框架。

  • 更好的方法

    但是您已经有一个有效的应用程序。如果您专注于改进现有代码库,将会有更好的结果:
  • 确保您遵循SOLID principles
  • 将您的业务逻辑与表示和数据库抽象分开
  • 开始为代码中真正阴暗的部分添加单元测试
  • 重构,重构,重构

  • 关于php - 将非框架PHP项目移植到Laravel 4.x,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/23467424/

    10-11 22:16
    查看更多