Silex遗留项目的结构

时间:2016-03-03 18:39:43

标签: php silex legacy-code

我有一个非常古老的平面PHP项目。我想在不改变大旧数据库结构的情况下对源文件进行现代化。我找到了PHP Framework Symfony Silex。我喜欢这个框架的微观结构,理解起来并不那么复杂。

我有以下文件结构:

- classes (The business logic)
- web (index.php and all my controllers)
- vendors
  • 如何从Silex应用程序中包含我的业务逻辑?我应该在require_once('classes/file1.php');使用index.php吗?
  • 如何从业务逻辑文件访问数据库?

1 个答案:

答案 0 :(得分:1)

将遗留代码转换为新框架是一项艰巨的任务。它不会像要求您的业务逻辑文件那么简单。如果我在你的位置,这就是我如何去做。

花一些时间学习Silex 。首先建立一个全新的测试项目,看看它是如何工作的。如果您在尝试将其与遗留系统集成之前了解框架假设的工作方式,那么最好。在您尝试了一段时间之后,您可以决定Silex是否适合您。

了解Silex的工作原理后,您应该让 Composer自动加载器使用您的代码。 Composer可以加载业务逻辑类,而无需使用require

接下来,弄清楚如何使用数据库。我看到了两个选项。您可以转换到Doctrine,也可以使用现有的数据库访问类。 Symfony(以及Silex)生态系统以Doctrine ORM为导向。根据您的架构,您可以为它编写Doctrine映射。但是,Silex与Doctrine无关,您应该能够使用现有的数据库访问代码。如果保留现有系统,您可能希望编写Silex ServiceProvider以与其集成。

接下来,最困难的部分可能是将您的业务逻辑转移到Silex 控制器。要记住的一件事是,您不一定需要立即转换整个项目。根据项目的大小,您可能希望一次转换一个部分。