【PHP】会话高级

symfony把会话ID存在客户端的cookies上.symfony的会话cookies就叫symfony,但是你可以在factories.yml里改变会话的名称.参看6-20
例6-20---在apps/myapp/config/factories.yml里,改变会话的Cookie名称
all:
  storage:
    class: sfSessionStorage
    param:
      session_name: my_cookie_name

TIP 会话只有在factories.yml里的auto_start参数设置成true时(这是默认设置)才会开始开启(通过PHP的session_start()函数).如果想手动开始用户会话,关闭会话存储机制里的这个设置就可以了.

symfony的会话是基于PHP会话功能的.这就意味着如果你想用URL参数来代替cookies的话,你只需要在php.ini里修改use_trans_sid的设置.我们不主张用这种方法.

seeeion.use_trans_sid = 1

在服务器方面,symfony把用户会话存在文件系统里面.如果你想把它们存在数据库里,你需要修改factories.yml里的class参数,请参看例6-21

例6-21---修改服务器会话的存储方式,在apps/myapp/config/factories.yml里
all:
  storage:
    class: sfMySQLSessionStorage
    param:
      db_table: SESSION_TABLE_NAME   #存放会话的表的名字
      database: DATABASE_CONNECTION  #使用的数据库连接的名字

现有的会话存储类有sfMySQLSessionStorage,sfPostgreSQLSessionStorage,和sfPDOSessionStorage,建议用最后的这个.database不是必需的配置,它确定数据库的连接方式; symfony会用databases.yml(见第8章)里的配置(主机,数据库名,用户名,密码)去连接数据库.
在sf_timeout秒后,会话将自动期满.这个常量的默认值是30分钟.当然你可以在settings.yml里修改这个常量.请参看例6-22

例6-22---修改会话届期,在apps/myapp/config/settings.yml里
default:
  .settings:
    timeout:   1800   #会话存活的秒数

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值