Wprowadzenie do Zend Framework

     Nauka Zend Framework

    appendix

     Przewodnik po Zend Framework


  • Zend_Gdata
  • Zend_Http
  • Zend_InfoCard
  • Zend_Json
  • Zend_Layout
  • Zend_Ldap
  • Zend_Loader
  • Zend_Locale
  • Zend_Log
  • Zend_Mail
  • Zend_Markup
  • Zend_Measure
  • Zend_Memory
  • Zend_Mime
  • Zend_Navigation
  • Zend_Oauth
  • Zend_OpenId
  • Zend_Paginator
  • Zend_Pdf
  • Zend_ProgressBar
  • Zend_Queue
  • Zend_Reflection
  • Zend_Registry
  • Zend_Rest

  • Zend_Search_Lucene
  • Zend_Serializer
  • Zend_Server
  • Zend_Service
  • Zend_Session
  • Zend_Soap
  • Zend_Tag
  • Zend_Test
  • Zend_Text
  • Zend_TimeSync
  • Zend_Tool
  • Zend_Tool_Framework
  • Zend_Tool_Project
  • Zend_Translate
  • Zend_Uri
  • Zend_Validate
  • Zend_Version
  • Zend_View
  • Zend_Wildfire
  • Zend_XmlRpc
  • ZendX_Console_Process_Unix
  • ZendX_JQuery
  • Translation 21.3% Update 2011-11-16 - Revision 24356 - Version ZF 1.11.x

    62.5. Zend_Session_SaveHandler_DbTable

    The basic setup for Zend_Session_SaveHandler_DbTable must at least have four columns, denoted in the config array or Zend_Config object: primary, which is the primary key and defaults to just the session id which by default is a string of length 32; modified, which is the unix timestamp of the last modified date; lifetime, which is the lifetime of the session (modified + lifetime > time();); and data, which is the serialized data stored in the session

    Przykład 62.18. Basic Setup

    CREATE TABLE `session` (
      `
    idchar(32),
      `
    modifiedint,
      `
    lifetimeint,
      `
    datatext,
      
    PRIMARY KEY (`id`)
    );
    //get your database connection ready
    $db Zend_Db::factory('Pdo_Mysql', array(
        
    'host'        =>'example.com',
        
    'username'    => 'dbuser',
        
    'password'    => '******',
        
    'dbname'    => 'dbname'
    ));

    //you can either set the Zend_Db_Table default adapter
    //or you can pass the db connection straight to the save handler $config
    Zend_Db_Table_Abstract::setDefaultAdapter($db);
    $config = array(
        
    'name'           => 'session',
        
    'primary'        => 'id',
        
    'modifiedColumn' => 'modified',
        
    'dataColumn'     => 'data',
        
    'lifetimeColumn' => 'lifetime'
    );

    //create your Zend_Session_SaveHandler_DbTable and
    //set the save handler for Zend_Session
    Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));

    //start your session!
    Zend_Session::start();

    //now you can use Zend_Session like any other time

    You can also use Multiple Columns in your primary key for Zend_Session_SaveHandler_DbTable.

    Przykład 62.19. Using a Multi-Column Primary Key

    CREATE TABLE `session` (
        `
    session_idchar(32NOT NULL,
        `
    save_pathvarchar(32NOT NULL,
        `
    namevarchar(32NOT NULL DEFAULT '',
        `
    modifiedint,
        `
    lifetimeint,
        `
    session_datatext,
        
    PRIMARY KEY (`Session_ID`, `save_path`, `name`)
    );
    //setup your DB connection like before
    //NOTE: this config is also passed to Zend_Db_Table so anything specific
    //to the table can be put in the config as well
    $config = array(
        
    'name'              => 'session'//table name as per Zend_Db_Table
        
    'primary'           => array(
            
    'session_id',   //the sessionID given by PHP
            
    'save_path',    //session.save_path
            
    'name',         //session name
        
    ),
        
    'primaryAssignment' => array(
            
    //you must tell the save handler which columns you
            //are using as the primary key. ORDER IS IMPORTANT
            
    'sessionId'//first column of the primary key is of the sessionID
            
    'sessionSavePath'//second column of the primary key is the save path
            
    'sessionName'//third column of the primary key is the session name
        
    ),
        
    'modifiedColumn'    => 'modified',     //time the session should expire
        
    'dataColumn'        => 'session_data'//serialized data
        
    'lifetimeColumn'    => 'lifetime',     //end of life for a specific record
    );

    //Tell Zend_Session to use your Save Handler
    Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));

    //start your session
    Zend_Session::start();

    //use Zend_Session as normal

    digg delicious meneame google twitter technorati facebook

    Comments

    Loading...