gpt4 book ai didi

php - 如何在 Symfony Controller 和在内存缓存中管理 session 的经典独立 php 脚本之间共享 session 数据?

转载 作者:搜寻专家 更新时间:2023-10-31 21:07:14 25 4
gpt4 key购买 nike

我有一个基于 Symfony 框架构建的网站,我不得不添加一个直接在 web 目录中启动的遗留 php 脚本。

我还必须在 Symfony 框架 Controller 和独立的 php 脚本之间共享 session 数据。

我的服务器和 Symfony 框架上的 session 被配置为在 memcached 服务器 (127.0.0.1 11211) 中。

这是我的 Symfony 配置文件:

参数.yml

session_memcached_host: 127.0.0.1
session_memcached_port: 11211
session_memcached_prefix: 'BPY_'
session_memcached_expire: 3600

配置.yml

imports:
- { resource: session.yml }

...

session:
handler_id: session.handler.memcached

session .yml

services:
session.memcached:
class: Memcache
arguments:
persistent_id: %session_memcached_prefix%
calls:
- [ addServer, [ %session_memcached_host%, %session_memcached_port% ]]

session.handler.memcached:
class: Symfony\Component\HttpFoundation\Session\Storage\Handler\MemcacheSessionHandler
arguments: [@session.memcached, { prefix: %session_memcached_prefix%, expiretime: %session_memcached_expire% }]

Symfony Controller 中的 session 设置和读取使用:

$request->getSession->get('key');
$request->getSession->set('key', $value);

在单机老php脚本中,我使用的是全局session数组来设置和获取数据。理论上,为了让 Symfony 和我的脚本共享数据,我设置并获取数据:

$_SESSION['_sf2_attributes']

所以,最后有了这个配置,当我在 symfony Controller 中设置数据时,我在独立的 php 脚本中看不到它,当我在 php 脚本中设置数据时,我在 Symfony Controller 中看不到它。

我的配置或代码有什么问题?

最佳答案

你应该检查 Bridge a legacy Application with Symfony Sessions但总的来说,您可以通过以下方式配置它:

framework:
session:
storage_id: session.storage.php_bridge
handler_id: ~

关于php - 如何在 Symfony Controller 和在内存缓存中管理 session 的经典独立 php 脚本之间共享 session 数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30462209/

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