gpt4 book ai didi

php - 将工厂传递给 symfony 2 服务

转载 作者:可可西里 更新时间:2023-11-01 14:00:49 24 4
gpt4 key购买 nike

我有一个依赖于数据库连接的类,如下所示:

class Test 
{
private $conn;
public function __construct(Connection $conn) {
$this->conn = $conn;
}
}

此服务可能如下所示:

 services:
service.test:
class: Test
arguments:
- ["@database_connection"]

现在,我想传递我自己的连接服务/对象,它在启动时创建一个Connection。但我不能将它作为参数传递,因为它需要一个 Connection 对象,而不是一个工厂。

我怎样才能最好地解决这个问题?

我已经尝试在 Test 类上添加一个 setConnection,但最好保持当前定义和服务不变。

最佳答案

在 Symfony 的服务容器中实际上有现成的解决方案。

您的database_connection 服务应该配置为使用工厂来创建它的实例。那将是这样的:

services:
database_connection:
class: Connection
factory: [ConnectionFactory, createConnection]

如果工厂也是一个服务,它可能看起来像这样:

services:
database_connection:
class: Connection
factory: ["@connection_factory", createConnection]

可以找到更多相关信息 here .

关于php - 将工厂传递给 symfony 2 服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37878231/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com