php - 你如何在 Symfony 4 中使用 RedisSessionHandler?损坏的文档

标签 php symfony

文档已损坏并导致出现 404 页面。我不太擅长这样的逆向工程类(class),关于如何设置 services.yml 以使用它的任何提示?

文档页面 https://symfony.com/doc/current/components/http_foundation/session_configuration.html

session 处理程序 404 https://api.symfony.com/4.1/Symfony/Component/HttpFoundation/Session/Storage/Handler/RedisSessionHandler.html

session 处理程序的 Git 页面 https://github.com/symfony/symfony/blob/master/src/Symfony/Component/HttpFoundation/Session/Storage/Handler/RedisSessionHandler.php

最佳答案

您需要定义 2 个服务:

  • 一个用于 Redis 连接。
  • 一个用于 RedisSessionHandler,它将使用该连接。

编辑服务文件:

# config/services.yaml
services:
    Redis:
        class: Redis
        calls:
            - method: connect
              arguments:
                  - '%env(REDIS_HOST)%'
                  - '%env(int:REDIS_PORT)%'
            # If you need key prefix
            # - method: setOption
            #   arguments:
            #       - !php/const Redis::OPT_PREFIX
            #       - 'my_prefix'

    Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler:
        arguments:
            - '@Redis'

(请注意,我将 Redis 主机和端口存储在此处作为环境变量,但如果需要,您可以在其他地方定义它们)。

您现在可以将该服务用作您的 session 处理程序:

# config/packages/framework.yaml
framework:  
    session:
        handler_id: Symfony\Component\HttpFoundation\Session\Storage\Handler\RedisSessionHandler

我也有点挣扎,写了一篇更详细的文章:http://blog.michaelperrin.fr/2018/08/14/redis-session-handling-in-symfony/

关于php - 你如何在 Symfony 4 中使用 RedisSessionHandler?损坏的文档,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51795767/

相关文章:

Symfony 5 - 防火墙中的多个身份验证器。我需要设置“entry_point

php - 如何在 OpenCart 中创建自定义的 SEO 友好 URL?

php - Postman 工作时,Guzzle POST 请求 JWT API 未经授权

php - 如何使用 PHP 从下拉菜单中动态创建的表单中获取值?

javascript - 在 twig 渲染模板后使用 javascript 更改 webpack 生成的图像 src

php - 禁用 symfony 缓存/appDevDebugProjectContainer.php 怪物

php - DataTransformer 中的 reverseTransform 不起作用

php - 简短的唯一 ID 与自定义 ID 混合

java - 以没有 JVM 负载开销的方式使用 PHP 调用 Java 类?

symfony - 为什么我的 Doctrine 自定义存储库认为我的实体是分离的?