unitedasian/propel-session-bundle

Symfony 组件,用于管理会话

1.0.8 2016-10-04 15:04 UTC

This package is auto-updated.

Last update: 2024-08-29 03:47:38 UTC


README

UAMPropelSessionBundle 是一个定义明确的 symfony 组件,通过 Propel ORM 实现了会话的便捷实现。

创建此组件的动机是一个不便的问题

  • 在多个 symfony 应用中配置会话是重复的,但标准化程度如此之高,以至于每次都不值得花费力气。
  • 会话表实际上不需要模式或应用程序中的 Propel OM 类;然而,如果不存在,每次运行 propel:migration:generate-diff 时都会尝试删除它。

为了解决这个问题,此组件提供了应用程序会话相关设置的现成配置,以及会话表的 Propel 模式。

此组件具有明确的观点

它不提供任何定制空间;如果它提供的设置不适合您的应用程序,那么您应该以通常的方式在应用程序的配置中自定义会话设置。

此组件还故意忽略软件开发的基本原则,并假设某些命名容器参数的存在;如果这些参数不存在,应用程序可能会神秘地失败。另一方面,这些参数通常存在于任何 symfony 应用程序中;在应用程序配置中更改它们的名称以匹配组件期望的名称几乎不会造成困难。

此组件使用会话的默认表名(sessions)和默认列名(sess_idsess_datasess_timesess_lifetime)。

以下参数应在应用程序的某个位置定义

  • database_host
  • database_port
  • database_name
  • database_user
  • database_password

用法

将组件添加到应用程序的 composer.json 文件的要求中

    require: {
    	"unitedasian/propel-session-bundle": "~1.0",
    	...
	}

在应用程序的内核中启用组件

# app/AppKernel.php

    public function registerBundles()
    {
		$bundles = array(
            new UAM\Bundle\PropelSessionBundle\UAMPropelSessionBundle(),
            ...
        );

        ... 

        return $bundles;
    }

创建 sessions 表:有多种方法可以通过 propel 命令来完成,例如 propel:sql:build;最简单的方法可能是运行 propel:migration:generate-diff 然后运行 propel:migration:migrate

更新应用程序的配置以使用组件提供的会话处理程序服务

# app/config/config.yml

framework:
    session:
        handler_id: unitedasian.session.handler.pdo