更新:问题已解决,请参阅评论(许多问题,版本差异只是其中之一)。
我正在尝试在 config.yml 文件中配置 Symfony2 中的会话。我有以下配置:
session:
    default_locale: %locale%
    lifetime:       7200
    auto_start:     true
    storage_id:     session.storage.pdo
parameters:
  pdo.db_options:
    db_table:    session
    db_id_col:   session_id
    db_data_col: session_value
    db_time_col: session_time
services:
  pdo:
    class: PDO
    arguments:
      - "mysql:dbname=%database_name%"
      - %database_user%
      - %database_password%
session.storage.pdo:
  class:     Symfony\Component\HttpFoundation\SessionStorage\PdoSessionStorage
  arguments: [@pdo, %session.storage.options%, %pdo.db_options%]
它基于 Symfony2 的食谱http://symfony.com/doc/2.0/cookbook/configuration/pdo_session_storage.html
我创建了与给定链接中完全相同的表。
但是,它不起作用。我收到一些“空白”错误(没有错误消息,但有“PDO 异常”和“错误异常”)。我承认我对配置 Symfony2 或任何信息知之甚少(这就是我使用说明书的原因)。我浪费了很多时间,在互联网上没有看到太多关于它的文档,更不用说互联网对这种情况非常沉默(将会话存储到 Symfony2 中的数据库表)。
我的 NetBeans 正在“大喊”最后一行:
  arguments: [@pdo, %session.storage.options%, %pdo.db_options%]
“扫描下一个令牌时出现 ScannerException,我们发现此字符 @(64) 无法启动任何令牌”。
更新:嗯,现在我不确定它是否与配置有关。我可以看到 Symfony2 的说明书(使用...)示例实际上与 Symfony2 包中的文件结构不匹配。总之,没有这样的文件路径,但放上真正的文件路径后它仍然不起作用。