Symfony 4——当我尝试创建会话代理时出错
Symfony 4 -- error when I try to create a Session Proxy
我按照 https://symfony.com/doc/master/session/proxy_examples.html、
中的说明进行操作
我更新我的 framework.yaml
framework:
secret: '%env(APP_SECRET)%'
#default_locale: en
#csrf_protection: ~
#http_method_override: true
# uncomment this entire section to enable sessions
session:
# With this config, PHP's native session handling is used
handler_id: App\Session\CookieEncryptedSession
#esi: ~
#fragments: ~
php_errors:
log: true
我也创建了自己的班级:
<?php
namespace App\Session;
use Defuse\Crypto\Crypto;
use Defuse\Crypto\Key;
use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy;
class CookieEncryptedSession extends SessionHandlerProxy
{
private $key;
public function __construct(\SessionHandlerInterface $handler, Key $key)
{
$this->key = $key;
parent::__construct($handler);
}
public function read($id)
{
$data = parent::read($id);
return Crypto::decrypt($data, $this->key);
}
public function write($id, $data)
{
$data = Crypto::encrypt($data, $this->key);
return parent::write($id, $data);
}
}
当我尝试 运行 使用控制台的服务器时,出现此错误:
In CheckCircularReferencesPass.php line 67:
Circular reference detected for service "App\Session\CookieEncryptedSession
", path: "App\Session\CookieEncryptedSession -> App\Session\CookieEncrypted
Session".
知道错在哪里吗?
谢谢
奥斯卡
自动装配正在尝试将服务注入自身,因为服务实现了构造函数所需的接口。 CookieEncryptedSession
通过
实现 SessionHandlerInterface
class SessionHandlerProxy extends AbstractProxy implements \SessionHandlerInterface
在您的服务中手动设置服务:CookieEncryptedSession,这样您就可以select您想要的 SessionHandlerInterface 服务。
- NativeSessionHandler
- NativeFileSessionHandler
- DbalSessionHandler
- 等等
我按照 https://symfony.com/doc/master/session/proxy_examples.html、
中的说明进行操作我更新我的 framework.yaml
framework:
secret: '%env(APP_SECRET)%'
#default_locale: en
#csrf_protection: ~
#http_method_override: true
# uncomment this entire section to enable sessions
session:
# With this config, PHP's native session handling is used
handler_id: App\Session\CookieEncryptedSession
#esi: ~
#fragments: ~
php_errors:
log: true
我也创建了自己的班级:
<?php
namespace App\Session;
use Defuse\Crypto\Crypto;
use Defuse\Crypto\Key;
use Symfony\Component\HttpFoundation\Session\Storage\Proxy\SessionHandlerProxy;
class CookieEncryptedSession extends SessionHandlerProxy
{
private $key;
public function __construct(\SessionHandlerInterface $handler, Key $key)
{
$this->key = $key;
parent::__construct($handler);
}
public function read($id)
{
$data = parent::read($id);
return Crypto::decrypt($data, $this->key);
}
public function write($id, $data)
{
$data = Crypto::encrypt($data, $this->key);
return parent::write($id, $data);
}
}
当我尝试 运行 使用控制台的服务器时,出现此错误:
In CheckCircularReferencesPass.php line 67:
Circular reference detected for service "App\Session\CookieEncryptedSession
", path: "App\Session\CookieEncryptedSession -> App\Session\CookieEncrypted
Session".
知道错在哪里吗?
谢谢
奥斯卡
自动装配正在尝试将服务注入自身,因为服务实现了构造函数所需的接口。 CookieEncryptedSession
通过
SessionHandlerInterface
class SessionHandlerProxy extends AbstractProxy implements \SessionHandlerInterface
在您的服务中手动设置服务:CookieEncryptedSession,这样您就可以select您想要的 SessionHandlerInterface 服务。
- NativeSessionHandler
- NativeFileSessionHandler
- DbalSessionHandler
- 等等