Php Silex遗留项目的结构
我有一个非常老的平面PHP项目。我希望在不改变大而旧的数据库结构的情况下使源文件现代化。我找到了PHP框架Symfony-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中 如何从业务逻辑文件访问数据库 将遗留代码转换到新框架是一项困难的任务。它不会像需
-类(业务逻辑)
-web(index.php和所有我的控制器)
-卖主
- 如何从Silex应用程序中包含我的业务逻辑?我应该使用
require_一次('classes/file1.php')代码>在my
中index.php
- 如何从业务逻辑文件访问数据库
require
接下来,了解如何使用数据库。我给你两个选择。您可以转换到条令,也可以使用现有的数据库访问类。Symfony(因此Silex)生态系统以ORM为中心。根据您的模式,您可能能够为其编写条令映射。然而,Silex不受条令的约束,您应该能够使用现有的数据库访问代码。如果保留现有系统,您可能需要编写一个SilexServiceProvider
来与之集成
接下来,最困难的部分可能是将业务逻辑移动到Silex控制器。需要记住的一点是,您不一定需要立即转换整个项目。根据项目的规模,您可能希望一次转换一个项目。我还有一个问题。如果我使用我的业务逻辑作为服务,如果我需要访问我的服务中的数据库。将“$app['db']”传递给我的服务的构造函数是访问数据库的正确方法吗?在我的第一步中,我将尝试使用“DoctrineServiceProvider”。是的。这是正确的。Silex的方法是为您的服务类创建一个服务提供者。这就是您构建服务并将
$app['db']
传递给其构造函数的地方。