Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Silex遗留项目的结构_Php_Silex_Legacy Code - Fatal编程技术网

Php Silex遗留项目的结构

Php Silex遗留项目的结构,php,silex,legacy-code,Php,Silex,Legacy Code,我有一个非常老的平面PHP项目。我希望在不改变大而旧的数据库结构的情况下使源文件现代化。我找到了PHP框架Symfony-Silex。我喜欢这个框架的微观结构,理解起来并不复杂 我有以下文件结构: -类(业务逻辑) -web(index.php和所有我的控制器) -卖主 如何从Silex应用程序中包含我的业务逻辑?我应该使用require_一次('classes/file1.php')在myindex.php中 如何从业务逻辑文件访问数据库 将遗留代码转换到新框架是一项困难的任务。它不会像需

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

我有以下文件结构:

-类(业务逻辑)
-web(index.php和所有我的控制器)
-卖主
  • 如何从Silex应用程序中包含我的业务逻辑?我应该使用
    require_一次('classes/file1.php')在my
    index.php
  • 如何从业务逻辑文件访问数据库

将遗留代码转换到新框架是一项困难的任务。它不会像需要业务逻辑文件那样简单。如果我处在你的位置,我会这样做

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

一旦您了解了Silex的工作原理,您应该使用Composer autoloader处理您的代码。Composer可以加载业务逻辑类,而无需使用
require

接下来,了解如何使用数据库。我给你两个选择。您可以转换到条令,也可以使用现有的数据库访问类。Symfony(因此Silex)生态系统以ORM为中心。根据您的模式,您可能能够为其编写条令映射。然而,Silex不受条令的约束,您应该能够使用现有的数据库访问代码。如果保留现有系统,您可能需要编写一个Silex
ServiceProvider
来与之集成


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

我还有一个问题。如果我使用我的业务逻辑作为服务,如果我需要访问我的服务中的数据库。将“$app['db']”传递给我的服务的构造函数是访问数据库的正确方法吗?在我的第一步中,我将尝试使用“DoctrineServiceProvider”。是的。这是正确的。Silex的方法是为您的服务类创建一个服务提供者。这就是您构建服务并将
$app['db']
传递给其构造函数的地方。