+1 here. Hope to see this component in ZF Core soon.
Great work Jordan. Thank you very much.

Cheers
holo


Jordan Raub escreveu:
Sweet! I thought this went to the wayside. I've been using it too on my stuff with no problems. Do you think this could make it into the trunk soon? Here is the link to the proposal too
http://framework.zend.com/wiki/display/ZFPROP/Zend_Session_SaveHandler_DbTable
Thanks,
Jordan
He that teaches himself hath a fool for his master. -- Benjamin Franklin
Poor is the pupil who does not surpass his master. -- Leonardo da Vinci.


----- Original Message ----
From: Simon Mundy <[EMAIL PROTECTED]>
To: Truppe Steven <[EMAIL PROTECTED]>
Cc: [email protected]
Sent: Saturday, September 22, 2007 7:10:53 PM
Subject: Re: [fw-general] using Zend_Auth with a custom Session Save Handler ?

The Zend_Session_SaveHandler_DbTable component is tucked away in the incubator - I've had it running now for the last couple of weeks in combination with Zend_Auth and it's been working wonderfully. It's been used in conjunction with a series of linked microsites using different subdomains and this approach has been the most effective way for me to manage sessions smoothly across them all (especially if I decide to offload my database and sessions to a standalone server down the track).

First you set up your session table. Here's my MySQL dump (nearly identical to the example shown on the proposal page for Zend_Session_SaveHandler_DbTable):-

CREATE TABLE `session_list` (
  `id` varchar(32) collate utf8_unicode_ci NOT NULL,
  `save_path` varchar(32) collate utf8_unicode_ci NOT NULL,
  `name` varchar(32) collate utf8_unicode_ci NOT NULL default '',
  `modified` int(11) default NULL,
  `lifetime` int(11) default NULL,
  `data` text collate utf8_unicode_ci,
  PRIMARY KEY  (`id`,`save_path`,`name`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci PACK_KEYS=1;

Here's an example of my config.ini file:-

[all]

; -----------------------------------------------------------------------------
; Database connection
; -----------------------------------------------------------------------------
db.connection = pdo_mysql
db.host = localhost
db.username = myusername
db.password = mypassword
db.dbname = mydatabase

; -----------------------------------------------------------------------------
; Session
; -----------------------------------------------------------------------------
session.cookie_domain = mydomain.com.au
session.name = mycustomsessionname
session.remember_me_seconds = 864000
session.use_only_cookies = on

sessionhandler.name = session_list
sessionhandler.lifetime = 864000
sessionhandler.primary = id
sessionhandler.dataColumn = data
sessionhandler.modifiedColumn = modified
sessionhandler.lifetimeColumn = lifetime
sessionhandler.overrideLifetime = true

This is how I set it up in my bootstrap:-

// Set up database
$db = Zend_Db::factory($config->db->connection, $config->db->toArray());
Zend_Db_Table::setDefaultAdapter($db);

// Set session defaults
Zend_Session::setOptions($config->session->toArray());
Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config->sessionhandler->toArray()));

And then continue to use Zend_Auth as you would normally.

Note that the storage engine for Zend_Auth bears no relation to the session at all - this will be a completely separate table (if you're using database authentication).

Hope this gets you on the way!

Cheerio

Hi,

i have a class that implements Zend_Session_SaveHandler_Interface to
save the session data inside a database. now i want this save handler to
be used to store the identity after authentication.

in the manual i found this:

   /By default, Zend_Auth provides persistent storage of the identity
   from a successful authentication attempt using the PHP session. Upon
   a successful authentication attempt, Zend_Auth::authenticate()
   stores the identity from the authentication result into persistent
   storage. Unless configured otherwise, Zend_Auth uses a storage class
   named Zend_Auth_Storage_Session, which, in turn, uses Zend_Session.
   A custom class may instead be used by providing an object that
   implements Zend_Auth_Storage_Interface to Zend_Auth::setStorage()./

What does that mean for the Zend_Session_SaveHandler implementation ? Is
Zend_Auth_Storage_Interface the same interface ??


I only found Zend_Session::setSaveHandler() but i have no idea how to
use this in combination with Zend_Auth (because Zend_Auth handles
Zend_Session internal).

I hope someone can help me with this.

best regards,
Truppe Steven

--

Simon Mundy | Director | PEPTOLAB

""" " "" """""" "" "" """"""" " "" """"" " """"" " """""" "" "
202/258 Flinders Lane | Melbourne | Victoria | Australia | 3000
Voice +61 (0) 3 9654 4324 | Mobile 0438 046 061 | Fax +61 (0) 3 9654 4124
http://www.peptolab.com



Reply via email to