我有一个遗留应用程序,它是基于旧的自定义 MVC 框架构建的,我希望最终放弃该框架。这个框架不依赖于单个前端控制器,因此大多数页面仍然有专用的php文件来调用受人尊敬的控制器,其他页面是混合的php/html。我已经阅读了有关使用各种方法将应用程序迁移到 symfony 的内容(https://symfony.com/doc/current/migration.html),但是我在使用这两种方法时都遇到了问题,并且意识到我实际上并不需要 symfony 的路由处理。
Symfony 目前存在于我们的应用程序中,但仅由各种命令使用。我们所有的核心逻辑仍然在遗留应用程序中,因此 Symfony 可以毫无问题地访问它,因为这些类都在全局命名空间中。然而,问题是,遗留应用程序无法使用任何新的 Symfony 类,因为它不支持依赖项注入。为了开始将我们的一些核心逻辑和功能转移到 Symfony,需要这种能力。
理想情况下,我希望能够完成的是将容器加载到我们的遗留应用程序中,该应用程序具有所有可用的自动装配服务。允许我在旧应用程序中访问基于 Symfony 的新服务。
非常感谢任何帮助。
非常感谢。
更新1
所以我尝试了@Cerad所说的,只需访问内核,因为它是全局的。我将 bootstrap.php 逻辑复制到旧应用程序的主配置(因此它加载现有的 .env* 文件),然后启动内核(实例化它并在旧配置中调用 boot)。它有效,我可以在我的 php 文件中引用 $kernel (使用全局 $kernel)并访问容器。然而,这与@Dmitry Solovov 的回应一致,服务必须是公开的。
我必须将所有我想要的服务设为公开吗?如果我在 services.yaml 中手动定义服务,将其设置为公共,它就可以工作。
但这并不是很理想,因为我想自动加载我的服务,因此我可以以正确的方式使用服务,而不必显式定义我希望在旧应用程序中可用的每项服务。
如何在不公开服务的情况下将服务注入到我的旧控制器中?就像 Symfony 的控制器如何允许您将服务注入到 Controller 方法中一样?
多谢。
慕村225694
拉风的咖菲猫