fyre/session 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

fyre/session

Composer 安装命令:

composer require fyre/session

包简介

A session library.

README 文档

README

FyreSession is a free, open-source session library for PHP.

Table Of Contents

Installation

Using Composer

composer require fyre/session

In PHP:

use Fyre\Session\Session;

Basic Usage

$session = new Session($container, $config);

Default configuration options will be resolved from the "Session" key in the Config.

  • $options is an array containing configuration options.
    • cookie is an array containing session cookie options.
      • name is a string representing the cookie name, and will default to "FyreSession".
      • expires is a number representing the cookie lifetime, and will default to 0.
      • domain is a string representing the cookie domain, and will default to "".
      • path is a string representing the cookie path, and will default to "/".
      • secure is a boolean indicating whether to set a secure cookie, and will default to true.
      • sameSite is a string representing the cookie same site, and will default to "Lax".
    • expires is a number representing the maximum lifetime of a session, and will default to the session.gc_maxlifetime PHP setting.
    • path is a string representing the session path, and will default to "sessions".
    • handler
      • className must be set to \Fyre\Session\Handlers\Database\PostgresSessionHandler.
$container->use(Config::class)->set('Session', $options);

Autoloading

It is recommended to bind the Session to the Container as a singleton.

$container->singleton(Session::class);

Any dependencies will be injected automatically when loading from the Container.

$session = $container->use(Session::class);

Methods

Clear

Clear the session data.

$session->clear();

Consume

Retrieve and delete a value from the session.

  • $key is a string representing the session key.
$value = $session->consume($key);

Delete

Delete a value from the session.

  • $key is a string representing the session key.
$session->delete($key);

Destroy

Destroy the session.

$session->destroy();

Get

Retrieve a value from the session.

  • $key is a string representing the session key.
$value = $session->get($key);

Has

Determine whether a value exists in the session.

  • $key is a string representing the session key.
$has = $session->has($key);

ID

Get the session ID.

$id = $session->id();

Is Active

Determine whether the session is active.

$isActive = $session->isActive();

Refresh

Refresh the session ID.

  • $deleteOldSession is a boolean indicating whether to delete the old session, and will default to false.
$session->refresh($deleteOldSession);

Set

Set a session value.

  • $key is a string representing the session key.
  • $value is the value to set.
$session->set($key, $value);

Set Flash

Set a session flash value.

  • $key is a string representing the session key.
  • $value is the value to set.
$session->setFlash($key, $value);

Set Temp

Set a session temporary value.

  • $key is a string representing the session key.
  • $value is the value to set.
  • $expire is a number indicating the number of seconds the value will be valid, and will default to 300.
$session->setTemp($key, $value, $expire);

Start

Start the session.

  • $options is an array containing configuration options.
$session->start($options);

Session Handlers

You can load a specific session handler by specifying the Session.handler.className Config option.

Custom session handlers can be created by extending \Fyre\Session\SessionHandler and implementing the SessionHandlerInterface.

Database

The Database session handler can be loaded using custom configuration.

  • $options is an array containing configuration options.
    • className must be set to \Fyre\Session\Handlers\DatabaseSessionHandler.
    • expires is a number representing the maximum lifetime of a session, and will default to the session.gc_maxlifetime PHP setting.
    • prefix is a string representing the session key prefix, and will default to "".
    • connectionKey is a string representing the Connection key and will default to "default".
    • path is a string representing the table name, and will default to "sessions".
$container->use(Config::class)->set('Session.handler', $options);

MySQL

The MySQL database session handler can be loaded using custom configuration.

  • $options is an array containing configuration options.
    • className must be set to \Fyre\Session\Handlers\Database\MysqlSessionHandler.
    • expires is a number representing the maximum lifetime of a session, and will default to the session.gc_maxlifetime PHP setting.
    • prefix is a string representing the session key prefix, and will default to "".
    • connectionKey is a string representing the Connection key and will default to "default".
    • path is a string representing the table name, and will default to "sessions".
$container->use(Config::class)->set('Session.handler', $options);

Postgres

The Postgres database session handler can be loaded using custom configuration.

  • $options is an array containing configuration options.
    • className must be set to \Fyre\Session\Handlers\Database\PostgresSessionHandler.
    • expires is a number representing the maximum lifetime of a session, and will default to the session.gc_maxlifetime PHP setting.
    • prefix is a string representing the session key prefix, and will default to "".
    • connectionKey is a string representing the Connection key and will default to "default".
    • path is a string representing the table name, and will default to "sessions".
$container->use(Config::class)->set('Session.handler', $options);

File

The File session handler can be loaded using custom configuration.

  • $options is an array containing configuration options.
    • className must be set to \Fyre\Session\Handlers\FileSessionHandler.
    • expires is a number representing the maximum lifetime of a session, and will default to the session.gc_maxlifetime PHP setting.
    • prefix is a string representing the session key prefix, and will default to "".
    • path is a string representing the directory path, and will default to "sessions".
$container->use(Config::class)->set('Session.handler', $options);

Memcached

The Memcached session handler can be loaded using custom configuration.

  • $options is an array containing configuration options.
    • className must be set to \Fyre\Session\Handlers\MemcachedSessionHandler.
    • expires is a number representing the maximum lifetime of a session, and will default to the session.gc_maxlifetime PHP setting.
    • prefix is a string representing the session key prefix, and will default to "session:".
    • host is a string representing the Memcached host, and will default to "127.0.0.1".
    • port is a number indicating the Memcached port, and will default to 11211.
    • weight is a string representing the server weight, and will default to 1.
$container->use(Config::class)->set('Session.handler', $options);

Redis

The Redis session handler can be loaded using custom configuration.

  • $options is an array containing configuration options.
    • className must be set to \Fyre\Session\Handlers\RedisSessionHandler.
    • expires is a number representing the maximum lifetime of a session, and will default to the session.gc_maxlifetime PHP setting.
    • prefix is a string representing the session key prefix, and will default to "session:".
    • host is a string representing the Redis host, and will default to "127.0.0.1".
    • password is a string representing the Redis password
    • port is a number indicating the Redis port, and will default to 6379.
    • database is a string representing the Redis database.
    • timeout is a number indicating the connection timeout.
    • persist is a boolean indicating whether to use a persistent connection, and will default to true.
    • tls is a boolean indicating whether to use a tls connection, and will default to true.
    • ssl is an array containing SSL options.
      • key is a string representing the path to the key file.
      • cert is a string representing the path to the certificate file.
      • ca is a string representing the path to the certificate authority file.
$container->use(Config::class)->set('Session.handler', $options);

fyre/session 适用场景与选型建议

fyre/session 是一款 基于 PHP 开发的 Composer 扩展包,目前已累计 143 次下载、GitHub Stars 达 0, 最近一次更新时间为 2022 年 03 月 26 日, 在 PHP 生态内属于活跃度较高的组件。

我们在过去多个企业项目中使用过 fyre/session 或与其功能相近的方案,如果你在选型或落地过程中遇到问题,例如 版本兼容、二次改造、私有化封装、与内部系统对接、生产 BUG 排查,欢迎联系我们协助评估。

围绕 fyre/session 我们能提供哪些服务?
定制开发 / 二次开发

基于 fyre/session 在你已有业务上做功能扩展、字段裁剪、UI 适配、与内部账号 / 权限 / 日志系统的深度对接。

BUG 修复 & 性能优化

线上偶发问题、内存泄漏、慢查询、并发异常等排查修复;针对高流量场景做缓存、队列、索引层面的调优。

项目外包 & 长期维护

承接完整的项目从需求 → 设计 → 开发 → 上线 → 长期运维;也可按月提供技术保姆服务。

yvsm@zunyunkeji.com QQ:316430983 微信:yvsm316 西安尊云信息科技 · 专注 PHP / Go / 分布式系统研发

统计信息

  • 总下载量: 143
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 4
  • 依赖项目数: 3
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 1
  • Forks: 1
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2022-03-26