gpt4 book ai didi

php - 如何将容器作为服务的参数

转载 作者:IT王子 更新时间:2023-10-29 01:12:35 27 4
gpt4 key购买 nike

在我的服务构造函数中

public function __construct(
EntityManager $entityManager,
SecurityContextInterface $securityContext)
{
$this->securityContext = $securityContext;
$this->entityManager = $entityManager;

我将 entityManager 和 securityContext 作为参数传递。我的 services.xml 也在这里

    <service id="acme.memberbundle.calendar_listener" class="Acme\MemberBundle\EventListener\CalendarEventListener">
<argument type="service" id="doctrine.orm.entity_manager" />
<argument type="service" id="security.context" />

但是现在,我想在诸如

这样的服务中使用容器
$this->container->get('router')->generate('fos_user_profile_edit') 

如何将容器传递给服务?

最佳答案

如果服务扩展了 ContainerAware,这很容易

use \Symfony\Component\DependencyInjection\ContainerAware;

class YouService extends ContainerAware
{
public function someMethod()
{
$this->container->get('router')->generate('fos_user_profile_edit')
...
}
}

服务.yml

  your.service:
class: App\...\YouService
calls:
- [ setContainer,[ @service_container ] ]

关于php - 如何将容器作为服务的参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17126277/

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