| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- <sect1 id="zend.session.savehandler.dbtable">
- <title>Zend_Session_SaveHandler_DbTable</title>
- <para>
- ההתקנה הבסיסית של Zend_Session_SaveHandler_DbTable חייבת לכלול לפחות 4 עמודות,
- המצויינים בקובץ ההגדרות/אובייקט ההגדרות:
- primary, אשר הוא המפתח הראשי וכברירת מחדל מוגדר למזהה היחודי אשר בעצם סטרינג באורך 32 תווים;
- modified, אשר משמש בתור זמן בפורמט UNIX של התאריך עדכון האחרון;
- lifetime, אשר משמש בתור תקופת החיים של ה session (modified + lifetime > time() );
- data, אשר משמש בתור המידע אשר נשמר בטבלה.
- </para>
- <example id="zend.session.savehandler.dbtable.basic">
- <title>שימוש בסיסי</title>
- <programlisting role="SQL"><![CDATA[
- CREATE TABLE `session` (
- `id` char(32),
- `modified` int,
- `lifetime` int,
- `data` text,
- PRIMARY KEY (`id`)
- );
- ]]>
- </programlisting>
- <programlisting role="php"><![CDATA[
- //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
- ]]>
- </programlisting>
- </example>
- <para>
- ניתן גם להשתמש בכמה מפתחות ראשיים לכמה עמודות ב Zend_Session_SaveHandler_DbTable.
- </para>
- <example id="zend.session.savehandler.dbtable.multi-column-key">
- <title>שימוש במפתח ראשי לכמה עמודות</title>
- <programlisting role="SQL"><![CDATA[
- CREATE TABLE `session` (
- `session_id` char(32) NOT NULL,
- `save_path` varchar(32) NOT NULL,
- `name` varchar(32) NOT NULL DEFAULT '',
- `modified` int,
- `lifetime` int,
- `session_data` text,
- PRIMARY KEY (`Session_ID`, `save_path`, `name`)
- );
- ]]>
- </programlisting>
- <programlisting role="php"><![CDATA[
- //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
- ]]>
- </programlisting>
- </example>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|