svn: /phpdoc/ja/trunk/reference/session/functions/ session-set-save-handler.xml
| From: | TAKAGI Masahiro | Date: | Sat, 25 Feb 2012 01:44:57 +0000 |
| Subject: | svn: /phpdoc/ja/trunk/reference/session/functions/ session-set-save-handler.xml | ||
| Groups: | php.doc.ja | ||
| Request: | Send a blank email to doc-ja+get-3301@lists.php.net to get a copy of this message | ||
takagi Sat, 25 Feb 2012 01:44:57 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=323484
Log:
sync with en.
Changed paths:
U phpdoc/ja/trunk/reference/session/functions/session-set-save-handler.xml
Modified: phpdoc/ja/trunk/reference/session/functions/session-set-save-handler.xml
===================================================================
--- phpdoc/ja/trunk/reference/session/functions/session-set-save-handler.xml 2012-02-25 00:54:18 UTC
(rev 323483)
+++ phpdoc/ja/trunk/reference/session/functions/session-set-save-handler.xml 2012-02-25 01:44:57 UTC
(rev 323484)
@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- $Revision$ -->
-<!-- EN-Revision: 323466 Maintainer: takagi Status: ready -->
+<!-- EN-Revision: 323483 Maintainer: takagi Status: ready -->
<!-- CREDITS: hirokawa,shimooka -->
<refentry xmlns="http://docbook.org/ns/docbook"
xml:id="function.session-set-save-handler">
<refnamediv>
@@ -178,147 +178,153 @@
&reftitle.examples;
<para>
<example>
- <title><function>session_set_save_handler</function> の例</title>
- <para>
- 以下の例では、デフォルトの保存 <parameter>files</parameter>
に似た
- ファイルベースのセッション保存を行います。この例は、PHP
がサポート
-
する任意のデータベースエンジンを用いてデータベースへの保存を行う
- ように容易に拡張可能です。
- </para>
+ <title>
+ <function>session_set_save_handler</function> で
<classname>SessionHandlerInterface</classname> を使う例
+ </title>
<programlisting role="php">
<![CDATA[
<?php
-function open($save_path, $session_name)
+class MySessionHandler implements SessionHandlerInterface
{
- global $sess_save_path;
+ private $savePath;
- $sess_save_path = $save_path;
- return(true);
-}
+ public function open($savePath, $sessionName)
+ {
+ $this->savePath = $savePath;
-function close()
-{
- return(true);
-}
+ return true;
+ }
-function read($id)
-{
- global $sess_save_path;
+ public function close()
+ {
+ return true;
+ }
- $sess_file = "$sess_save_path/sess_$id";
- return (string) @file_get_contents($sess_file);
-}
+ public function read($id)
+ {
+ $file = "$this->savePath/sess_$id";
+ return (string)@file_get_contents($file);
+ }
-function write($id, $sess_data)
-{
- global $sess_save_path;
+ public function write($id, $data)
+ {
+ $file = "$this->savePath/sess_$id";
+ if ($fp = @fopen($file, "w")) {
+ $return = fwrite($fp, $data);
+ fclose($fp);
+ return $return;
+ } else {
+ return false;
+ }
+ }
- $sess_file = "$sess_save_path/sess_$id";
- if ($fp = @fopen($sess_file, "w")) {
- $return = fwrite($fp, $sess_data);
- fclose($fp);
- return $return;
- } else {
- return(false);
- }
+ public function destroy($id)
+ {
+ $file = "$this->savePath/sess_$id";
+ if (file_exists($file)) {
+ unlink($file);
+ }
-}
+ return true;
+ }
-function destroy($id)
-{
- global $sess_save_path;
+ public function gc($maxlifetime)
+ {
+ foreach (glob("$this->savePath/sess_*") as $file) {
+ if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
+ unlink($file);
+ }
+ }
- $sess_file = "$sess_save_path/sess_$id";
- return(@unlink($sess_file));
-}
-
-function gc($maxlifetime)
-{
- global $sess_save_path;
-
- foreach (glob("$sess_save_path/sess_*") as $filename) {
- if (filemtime($filename) + $maxlifetime < time()) {
- @unlink($filename);
+ return true;
}
- }
- return true;
}
-session_set_save_handler("open", "close", "read", "write",
"destroy", "gc");
-
+$handler = new MySessionHandler();
+session_set_save_handler($handler);
session_start();
-// セッションを通常通り使用します。
-
-?>
+// $_SESSION への値の設定や格納されている値の取得を進めます
]]>
</programlisting>
</example>
<example>
- <title>
- <function>session_set_save_handler</function> で
- <classname>SessionHandler</classname> を使う例
- </title>
+ <title><function>session_set_save_handler</function> の例</title>
+ <para>
+ 以下の例では、デフォルトの保存 <parameter>files</parameter>
に似た
+ ファイルベースのセッション保存を行います。この例は、PHP
がサポート
+
する任意のデータベースエンジンを用いてデータベースへの保存を行う
+ ように容易に拡張可能です。
+ </para>
<programlisting role="php">
<![CDATA[
<?php
-class MySessionHandler extends SessionHandler {
- public function open($save_path, $sessionid)
- {
+function open($savePath, $sessionName)
+{
global $sess_save_path;
- $sess_save_path = $save_path;
- return(true);
- }
- public function close()
- {
+ $sess_save_path = $savePath;
+
return true;
- }
- public function read($sessionid)
- {
+}
+
+function close()
+{
+ return true;
+}
+
+function read($id)
+{
global $sess_save_path;
$sess_file = "$sess_save_path/sess_$id";
- return (string) @file_get_contents($sess_file);
- }
- public function write($sessionid, $sessiondata)
- {
+
+ return (string)@file_get_contents($sess_file);
+}
+
+function write($id, $data)
+{
global $sess_save_path;
$sess_file = "$sess_save_path/sess_$id";
if ($fp = @fopen($sess_file, "w")) {
- $return = fwrite($fp, $sess_data);
- fclose($fp);
- return $return;
+ $return = fwrite($fp, $data);
+ fclose($fp);
+
+ return $return;
} else {
- return(false);
+ return false;
}
- }
- public function destroy($sessionid)
- {
+}
+
+function destroy($id)
+{
global $sess_save_path;
- $sess_file = "$sess_save_path/sess_$id";
- return(@unlink($sess_file));
- }
- public function gc($maxlifetime)
- {
+ $file = "$sess_save_path/sess_$id";
+ if (file_exists($file)) {
+ unlink($file);
+ }
+ return true;
+}
+
+function gc($maxlifetime)
+{
global $sess_save_path;
- foreach (glob("$sess_save_path/sess_*") as $filename) {
- if (filemtime($filename) + $maxlifetime < time()) {
- @unlink($filename);
- }
+ foreach (glob("$sess_save_path/sess_*") as $file) {
+ if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
+ unlink($file);
+ }
}
+
return true;
- }
}
-$handler = new MySessionHandler();
-session_set_save_handler($handler);
+session_set_save_handler("open", "close", "read", "write",
"destroy", "gc");
session_start();
-?>
+// $_SESSION への値の設定や格納されている値の取得を進めます
]]>
</programlisting>
</example>