gpt4 book ai didi

php - 在 Symfony 服务中使用 session

转载 作者:行者123 更新时间:2023-12-02 21:30:44 24 4
gpt4 key购买 nike

我想在 Symfony 服务中使用我的用户 session 。

所以,我的 Controller 中有:

$service = $this->container->get('myservice');
$timeline = $service->getThing();

我需要在函数 getThing() 中检索我的用户 session 。我不想添加像 getThing($session)

这样的 session

我怎样才能做到这一点?

最佳答案

正如 @Igor 所说,将 session (和安全上下文)注入(inject)到您的 Controller 中(因为它是一项服务)。

服务.yml

services:
my.controller:
class: "%mybundle.controller.foo.class%"
arguments: [@session, @security.context]

Controller ;

<?php
use Symfony\Component\HttpFoundation\Session\Session;

class Foo
{
private $sessionManager;

private $securityContext;

public function __construct(Session $session, $security_context)
{
$this->sessionMananger = $session;
$this->securityContext = $security_context;
}

public function someAction()
{
$id = $this->getId();
}

private function getId()
{
return $this->securityContext->getToken()->getUser()->getId();
}
}

关于php - 在 Symfony 服务中使用 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22349143/

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