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

标签 php symfony session memcached share

我有一个基于 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/

相关文章:

session - 在 CodeIgniter 中将 Isset 与 native session 结合使用

php - 将 $_SESSION ['somthing' ] 分配给变量时未定义索引

javascript - vue.js 输入搜索在用户列表中动态查找用户名

php - 使用 XSL 和 Php 将 XML 数据转换为 HTML : only printing xml tags without any formatting

php - at.js 无法使用远程过滤器,不显示下拉列表

symfony - 使用 phpStorm 在 Symfony 3.2.4 中进行功能测试

javascript - 多个页面需要自动刷新,每个页面上保存不同的选项

php - 这是try-catch-finally的可接受用法吗?

symfony - Symfony2-> Twig ->表单->字段->设置渲染= true

php - Symfony Assets :dump runtime exception