1 <sect1 id="zend.session.savehandler.dbtable">
2 <title>Zend_Session_SaveHandler_DbTable</title>
4 ההתקנה הבסיסית של Zend_Session_SaveHandler_DbTable חייבת לכלול לפחות 4 עמודות,
5 המצויינים בקובץ ההגדרות/אובייקט ההגדרות:
6 primary, אשר הוא המפתח הראשי וכברירת מחדל מוגדר למזהה היחודי אשר בעצם סטרינג באורך 32 תווים;
7 modified, אשר משמש בתור זמן בפורמט UNIX של התאריך עדכון האחרון;
8 lifetime, אשר משמש בתור תקופת החיים של ה session (modified + lifetime > time() );
9 data, אשר משמש בתור המידע אשר נשמר בטבלה.
11 <example id="zend.session.savehandler.dbtable.basic">
12 <title>שימוש בסיסי</title>
13 <programlisting role="SQL"><![CDATA[
14 CREATE TABLE `session` (
23 <programlisting role="php"><![CDATA[
24 //get your database connection ready
25 $db = Zend_Db::factory('Pdo_Mysql', array(
26 'host' =>'example.com',
27 'username' => 'dbuser',
28 'password' => '******',
32 //you can either set the Zend_Db_Table default adapter
33 //or you can pass the db connection straight to the save handler $config
34 Zend_Db_Table_Abstract::setDefaultAdapter($db);
38 'modifiedColumn' => 'modified',
39 'dataColumn' => 'data',
40 'lifetimeColumn' => 'lifetime'
43 //create your Zend_Session_SaveHandler_DbTable and
44 //set the save handler for Zend_Session
45 Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
48 Zend_Session::start();
50 //now you can use Zend_Session like any other time
55 ניתן גם להשתמש בכמה מפתחות ראשיים לכמה עמודות ב Zend_Session_SaveHandler_DbTable.
57 <example id="zend.session.savehandler.dbtable.multi-column-key">
58 <title>שימוש במפתח ראשי לכמה עמודות</title>
59 <programlisting role="SQL"><![CDATA[
60 CREATE TABLE `session` (
61 `session_id` char(32) NOT NULL,
62 `save_path` varchar(32) NOT NULL,
63 `name` varchar(32) NOT NULL DEFAULT '',
67 PRIMARY KEY (`Session_ID`, `save_path`, `name`)
71 <programlisting role="php"><![CDATA[
72 //setup your DB connection like before
73 //NOTE: this config is also passed to Zend_Db_Table so anything specific
74 //to the table can be put in the config as well
76 'name' => 'session', //table name as per Zend_Db_Table
78 'session_id', //the sessionID given by PHP
79 'save_path', //session.save_path
80 'name', //session name
82 'primaryAssignment' => array( //you must tell the save handler which columns you
83 //are using as the primary key. ORDER IS IMPORTANT
84 'sessionId', //first column of the primary key is of the sessionID
85 'sessionSavePath', //second column of the primary key is the save path
86 'sessionName', //third column of the primary key is the session name
88 'modifiedColumn' => 'modified', //time the session should expire
89 'dataColumn' => 'session_data', //serialized data
90 'lifetimeColumn' => 'lifetime', //end of life for a specific record
93 //Tell Zend_Session to use your Save Handler
94 Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
97 Zend_Session::start();
99 //use Zend_Session as normal