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

标签 php laravel frameworks laravel-4

我有一个大型 PHP 项目,其中没有使用任何框架(也没有使用 MVC 模式),我想逐步将其移植到 Laravel 上,并且(几乎)无需停机。
我正在寻找使已移植到 Laravel 的代码片段迁移透明的方法,同时保留功能较旧的纯 PHP 代码。

例如,Laravel 使用类和方法(例如 Input::get())“覆盖”超全局变量($_GET、$_POST 等)。我的普通 PHP 项目当然直接使用超全局变量。我怎样才能克服 Laravel 下的这些“不兼容性”,而不必立即重写我所有的 PHP 代码?

否则,如果你认为这个任务太困难,有没有任何 PHP 框架,由于其内部结构,会让这个任务更容易吗?

更新:
在 Laravel 中仍然可以使用超全局变量。我遇到了一个偷偷摸摸的错误:Laravel 在内部将 error_reporting 设置为 E_ALL 并显示自定义错误堆栈跟踪页面,即使对于 PHP E_NOTICE,但没有明确指定错误级别(这是一个 NOTICE 错误),甚至如果这是默认由 PHP 错误报告消息引擎完成的。

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

最佳答案

TL;DR

不要这样做。

常见误解

如果你有一个现有的项目,那么将其移植到框架上不会给你带来任何好处。框架不是某种魔法酱,它奇迹般地使代码变得更好或使网站运行得更快。

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

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

  • How can I overcome these "uncompatibilities" under Laravel without having to rewrite instantly all my PHP code?

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

  • (..) is there any PHP framework that, thanks to its internal structure, would make this task easier?

    不,没有。所有流行的框架都会要求您重写代码,以便将其绑定(bind)到框架。

更好的方法

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

  • 请务必关注 SOLID principles
  • 将业务逻辑与表示和数据库抽象分开
  • 开始为代码中真正可疑部分添加单元测试
  • 重构,重构,重构

P.S.: the materials listed here wold probably help

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

相关文章:

php - Laravel 验证复选框

php - Laravel 5.2 和 Valet - 无法发送电子邮件 - 无法找到套接字传输 "plain"

Java 2d 图形动画框架

.net - CSLA.NET 的替代品?

php - 发布http ://localhost:8000/index/bots 500 (Internal Server Error)

Javascript循环创建函数并使用收到的基于PHP查询的id附加值

php - 如何json_encode php数组但没有引号的键

php - 使用服务器端 : true 后,带有 Ajax 的 DataTable 无法正常工作

php - Laravel 5.5 更改未经身份验证的登录重定向 url

java - GWT Strength 与其他框架相比?