[prev in list] [next in list] [prev in thread] [next in thread]
List: php-doc-cvs
Subject: [DOC-CVS] =?utf-8?q?svn:_/phpdoc/en/trunk/reference/session/_functions/session-set-save-handler.xml_
From: Karma_Dordrak <drak () php ! net>
Date: 2012-02-28 14:03:19
Message-ID: svn-drak-1330437799-323629-1891874953 () svn ! php ! net
[Download RAW message or body]
drak Tue, 28 Feb 2012 14:03:19 +0000
Revision: http://svn.php.net/viewvc?view=revision&revision=323629
Log:
[sessions] move one example code from session-set-save-handler to \
sessionhandlerinterface
Changed paths:
U phpdoc/en/trunk/reference/session/functions/session-set-save-handler.xml
U phpdoc/en/trunk/reference/session/sessionhandlerinterface.xml
Modified: phpdoc/en/trunk/reference/session/functions/session-set-save-handler.xml
===================================================================
--- phpdoc/en/trunk/reference/session/functions/session-set-save-handler.xml 2012-02-28 \
13:37:00 UTC (rev 323628)
+++ phpdoc/en/trunk/reference/session/functions/session-set-save-handler.xml 2012-02-28 \
14:03:19 UTC (rev 323629) @@ -173,18 +173,13 @@
<para>
<example>
<title>
- <function>session_set_save_handler</function> using \
<classname>SessionHandlerInterface</classname> + Custom session handler: see full \
code in <classname>SessionHandlerInterface</classname> synposis. </title>
<para>
- The following code is for PHP version 5.4.0 and above.
+ The following code is for PHP version 5.4.0 and above. We just show the \
invokation here, the full example can be + seen in the \
<classname>SessionHandlerInterface</classname> synposis linked above. </para>
<para>
- The following example provides file based session storage similar to the
- PHP sessions default save handler <parameter>files</parameter>. This
- example could easily be extended to cover database storage using your
- favorite PHP supported database engine.
- </para>
- <para>
Note we use the OOP prototype with \
<function>session_set_save_handler</function> and
register the shutdown function using the function's parameter flag. This is \
generally advised when registering objects as session save handlers.
@@ -194,53 +189,7 @@
<?php
class MySessionHandler implements SessionHandlerInterface
{
- private $savePath;
-
- public function open($savePath, $sessionName)
- {
- $this->savePath = $savePath;
- if (!is_dir($this->savePath)) {
- mkdir($this->savePath, 0777);
- }
-
- return true;
- }
-
- public function close()
- {
- return true;
- }
-
- public function read($id)
- {
- return (string)@file_get_contents("$this->savePath/sess_$id");
- }
-
- public function write($id, $data)
- {
- return file_put_contents("$savePath/sess_$id", $data) === false ? false : \
true;
- }
-
- public function destroy($id)
- {
- $file = "$this->savePath/sess_$id";
- if (file_exists($file)) {
- unlink($file);
- }
-
- return true;
- }
-
- public function gc($maxlifetime)
- {
- foreach (glob("$this->savePath/sess_*") as $file) {
- if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
- unlink($file);
- }
- }
-
- return true;
- }
+ // implement interfaces here
}
$handler = new MySessionHandler();
@@ -399,9 +348,8 @@
<row>
<entry>5.4.0</entry>
<entry>
- Added <interfacename>SessionHandlerInterface</interfacename> and
- <classname>SessionHandler</classname> for implementing session
- handlers.
+ Added <interfacename>SessionHandlerInterface</interfacename> for implementing \
session handlers and + <classname>SessionHandler</classname> to expose internal \
PHP session handlers. </entry>
</row>
</tbody>
@@ -417,6 +365,10 @@
The <link linkend="ini.session.save-handler">session.save_handler</link>
configuration directive
</member>
+ <member>
+ The <link linkend="ini.session.serialize-handler">session.serialize_handler</link>
+ configuration directive.
+ </member>
<member>The <function>register_shutdown_function</function></member>
<member>The <function>session_register_shutdown</function> for PHP \
5.4.0+</member> </simplelist>
Modified: phpdoc/en/trunk/reference/session/sessionhandlerinterface.xml
===================================================================
--- phpdoc/en/trunk/reference/session/sessionhandlerinterface.xml 2012-02-28 13:37:00 \
UTC (rev 323628)
+++ phpdoc/en/trunk/reference/session/sessionhandlerinterface.xml 2012-02-28 14:03:19 \
UTC (rev 323629) @@ -47,6 +47,86 @@
</section>
+ <section xml:id="sessionhandlerinterface.examples">
+ <example>
+ <title>
+ Example using <classname>SessionHandlerInterface</classname>
+ </title>
+ <para>
+ The following example provides file based session storage similar to the
+ PHP sessions default save handler <parameter>files</parameter>. This
+ example could easily be extended to cover database storage using your
+ favorite PHP supported database engine.
+ </para>
+ <para>
+ Note we use the OOP prototype with \
<function>session_set_save_handler</function> and + register the shutdown \
function using the function's parameter flag. This is generally + advised when \
registering objects as session save handlers. + </para>
+ <programlisting role="php">
+<![CDATA[
+<?php
+class MySessionHandler implements SessionHandlerInterface
+{
+ private $savePath;
+
+ public function open($savePath, $sessionName)
+ {
+ $this->savePath = $savePath;
+ if (!is_dir($this->savePath)) {
+ mkdir($this->savePath, 0777);
+ }
+
+ return true;
+ }
+
+ public function close()
+ {
+ return true;
+ }
+
+ public function read($id)
+ {
+ return (string)@file_get_contents("$this->savePath/sess_$id");
+ }
+
+ public function write($id, $data)
+ {
+ return file_put_contents("$savePath/sess_$id", $data) === false ? false : \
true; + }
+
+ public function destroy($id)
+ {
+ $file = "$this->savePath/sess_$id";
+ if (file_exists($file)) {
+ unlink($file);
+ }
+
+ return true;
+ }
+
+ public function gc($maxlifetime)
+ {
+ foreach (glob("$this->savePath/sess_*") as $file) {
+ if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {
+ unlink($file);
+ }
+ }
+
+ return true;
+ }
+}
+
+$handler = new MySessionHandler();
+session_set_save_handler($handler, true);
+session_start();
+
+// proceed to set and retrieve values by key from $_SESSION
+]]>
+ </programlisting>
+ </example>
+ </section>
+
</partintro>
&reference.session.entities.sessionhandlerinterface;
--
PHP Documentation Commits Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic