将非框架PHP项目移植到Laravel 4.x.

Mat*_*Net 12 php frameworks laravel laravel-4

我有一个很大的PHP项目,其中我没有使用任何框架(也没有使用MVC模式),我想逐渐将它移植到Laravel上(几乎没有停机时间).
我正在寻找使已经移植到Laravel的代码片段的迁移变得透明的方法,同时保留功能较旧的普通PHP代码.

例如,Laravel使用类和方法"覆盖"超全局($ _GET,$ _POST等)(例如Input :: get()).我的普通PHP项目当然直接使用超全局.如何在Laravel下克服这些"不兼容性"而不必立即重写我的所有PHP代码?

否则,如果您认为此任务太难,是否有任何PHP框架,由于其内部结构,将使这项任务更容易?

更新:
在laravel中仍然可以使用超全球.我得到一个偷偷摸摸的错误:Laravel内部将error_reporting设置为E_ALL并显示自定义错误堆栈跟踪页面,即使对于PHP E_NOTICE,但没有明确指定错误级别(它是NOTICE错误),即使这是默认情况下完成的PHP错误报告消息引擎.

让我说,对于Laravel核心开发人员,我认为这种"部分沉默"行为通常会误导任何PHP开发人员试图将他的代码移植到他们的框架上.

ter*_*ško 25

TL; DR

不要这样做.

常见的误解

如果您有一个现有的项目,那么在框架上嫁接它将不会给您带来任何好处.框架不是一些魔术酱,奇迹般地使代码更好或使网站运行更快.

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

这就是您目前遇到这些问题的原因:

  • 如何在Laravel下克服这些"不兼容性"而不必立即重写我的所有PHP代码?

    你不能.完全按照Laravel框架要求重写它,否则它将无效.

  • (..)是否有任何PHP框架,由于其内部结构,将使这项任务更容易?

    不是,没有.所有流行的框架都希望您重写代码,以便它绑定到框架.

更好的方法

但是你已经有了一个有效的应用程序 如果您专注于改进现有代码库,您将获得更好的结果:

  • 确保遵循SOLID原则
  • 将业务逻辑与表示和数据库抽象分开
  • 开始为代码中非常阴暗的部分添加单元测试
  • 重构,重构,重构

PS:这里列出的材料可能会有所帮助