gpt4 book ai didi

php - 如何在 Symfony 的配置中从服务容器调用方法?

转载 作者:行者123 更新时间:2023-12-03 02:04:03 25 4
gpt4 key购买 nike

我在 Twig 模板中有一些变量,所以考虑使用全局范围。

config.yml
twig:
globals:
varA: "@wf.autoload.getA"
varB: "@wf.autoload.getB"

服务 yml 中我有:

services.yml
wf.autoload:
class: Scope\WfBundle\WfAutoloadService
arguments: ["@doctrine.orm.entity_manager"]

WfAutoloadService类具有获取变量的公共(public)函数

    class WfAutloadService {
...
public function getA(){
return ...;
}

public function getB(){
return ...
}
...
}

我的想法行不通。 @=service(wf.autoload).getA() 方法也不起作用。

这可能吗?或者这是坏主意和坏做法?

谢谢

最佳答案

如果 getA() 和 getB() 返回对象,您可以在配置服务时使用工厂:

services:
wf.autoload:
class: Scope\WfBundle\WfAutoloadService
arguments: ["@doctrine.orm.entity_manager"]
wf.autoload.getA:
class: A
factory: ["@wf.autoload", getA]

并设置全局 Twig :

twig:
globals:
varA: "@wf.autoload.getA"

关于php - 如何在 Symfony 的配置中从服务容器调用方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38590870/

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