[ZF-10089] Zend_Log
[zend.git] / documentation / manual / ja / module_specs / Zend_Session-SaveHandler-DbTable.xml
blob57cba22892b3acba51f04781e333342b793d66b1
1 <?xml version="1.0" encoding="UTF-8"?>
2 <!-- Reviewed: no -->
3 <!-- EN-Revision: 20810 -->
4 <sect1 id="zend.session.savehandler.dbtable">
5     <title>Zend_Session_SaveHandler_DbTable</title>
7     <para>
8         <classname>Zend_Session_SaveHandler_DbTable</classname> の基本セットアップには、少なくとも
9         設定配列/<classname>Zend_Config</classname> オブジェクトの各設定を意味する 4 つのカラムが必要です。
10         primary は主キーで、デフォルトは単なるセッション ID となります。
11         デフォルトでは 32 桁の文字列です。
12         modified は、最終更新日付を表す Unix タイムスタンプです。
13         lifetime は、セッションの有効期間です (<command>modified + lifetime > time()</command>)。
14         そして data が、セッションに保存されているデータをシリアライズしたものです。
15     </para>
17     <example id="zend.session.savehandler.dbtable.basic">
18             <title>基本的な設定</title>
20             <programlisting language="SQL"><![CDATA[
21 CREATE TABLE `session` (
22   `id` char(32),
23   `modified` int,
24   `lifetime` int,
25   `data` text,
26   PRIMARY KEY (`id`)
28 ]]></programlisting>
30         <programlisting language="php"><![CDATA[
31 // データベース接続を準備します
32 $db = Zend_Db::factory('Pdo_Mysql', array(
33     'host'        =>'example.com',
34     'username'    => 'dbuser',
35     'password'    => '******',
36     'dbname'    => 'dbname'
37 ));
39 // Zend_Db_Table のデフォルトアダプタを設定するか、DB 接続オブジェクトを
40 // 保存ハンドラの $config に直接私増す
41 Zend_Db_Table_Abstract::setDefaultAdapter($db);
42 $config = array(
43     'name'           => 'session',
44     'primary'        => 'id',
45     'modifiedColumn' => 'modified',
46     'dataColumn'     => 'data',
47     'lifetimeColumn' => 'lifetime'
50 // Zend_Session_SaveHandler_DbTable を作成し、それを
51 // Zend_Session の保存ハンドラとして設定します
52 Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
54 // セッション開始!
55 Zend_Session::start();
57 // これで、ふつうに Zend_Session を使えるようになります
58 ]]></programlisting>
59     </example>
61     <para>
62         <classname>Zend_Session_SaveHandler_DbTable</classname> で、
63         複数カラムの主キーを使用することもできます。
64     </para>
66     <example id="zend.session.savehandler.dbtable.multi-column-key">
67         <title>複数カラムの主キーの使用</title>
69         <programlisting language="SQL"><![CDATA[
70 CREATE TABLE `session` (
71     `session_id` char(32) NOT NULL,
72     `save_path` varchar(32) NOT NULL,
73     `name` varchar(32) NOT NULL DEFAULT '',
74     `modified` int,
75     `lifetime` int,
76     `session_data` text,
77     PRIMARY KEY (`Session_ID`, `save_path`, `name`)
79 ]]></programlisting>
81         <programlisting language="php"><![CDATA[
82 // 先ほど同様にまず DB 接続を設定します
83 // 注意: この設定は Zend_Db_Table にも渡されることに注意しましょう
84 // テーブル固有の内容についてもここで設定できます
85 $config = array(
86     'name'              => 'session', // Zend_Db_Table のテーブル名
87     'primary'           => array(
88         'session_id',   // PHP のセッション ID
89         'save_path',    // session.save_path
90         'name',         // セッション名
91     ),
92     'primaryAssignment' => array(
93         // 保存ハンドラに、どのカラムが主キーとなるのかを
94         // 教えなければなりません。その順番が重要です。
95         'sessionId', // 主キーの最初のカラムはセッション ID
96         'sessionSavePath', // 主キーの 2 番目のカラムは保存パス
97         'sessionName', // 主キーの 3 番目のカラムはセッション名
98     ),
99     'modifiedColumn'    => 'modified',     // セッションの有効期間
100     'dataColumn'        => 'session_data', // シリアライズしたデータ
101     'lifetimeColumn'    => 'lifetime',     // 指定したレコードの生存期間
104 // Zend_Session に、この保存ハンドラを使うように通知します
105 Zend_Session::setSaveHandler(new Zend_Session_SaveHandler_DbTable($config));
107 // セッションを開始します
108 Zend_Session::start();
110 // ふつうに Zend_Session を使用します
111 ]]></programlisting>
112     </example>
113 </sect1>
114 <!--
115 vim:se ts=4 sw=4 et: