浏览代码

Compatible with php8.1

walkor 3 年之前
父节点
当前提交
6e16d28319

+ 1 - 1
Protocols/Http/Response.php

@@ -156,7 +156,7 @@ class Response
     ) {
         $this->_status = $status;
         $this->_header = $headers;
-        $this->_body = $body;
+        $this->_body = (string)$body;
     }
 
     /**

+ 1 - 1
Protocols/Http/Session/RedisSessionHandler.php

@@ -17,7 +17,7 @@ namespace Workerman\Protocols\Http\Session;
  * Class RedisSessionHandler
  * @package Workerman\Protocols\Http\Session
  */
-class RedisSessionHandler extends \SessionHandler implements SessionHandlerInterface
+class RedisSessionHandler implements SessionHandlerInterface
 {
 
     /**

+ 84 - 3
Protocols/Http/Session/SessionHandlerInterface.php

@@ -13,10 +13,91 @@
  */
 namespace Workerman\Protocols\Http\Session;
 
-use \SessionHandlerInterface as InternalSessionHandlerInterface;
-
-interface SessionHandlerInterface extends InternalSessionHandlerInterface
+interface SessionHandlerInterface
 {
+    /**
+     * Close the session
+     * @link http://php.net/manual/en/sessionhandlerinterface.close.php
+     * @return bool <p>
+     * The return value (usually TRUE on success, FALSE on failure).
+     * Note this value is returned internally to PHP for processing.
+     * </p>
+     * @since 5.4.0
+     */
+    public function close();
+
+    /**
+     * Destroy a session
+     * @link http://php.net/manual/en/sessionhandlerinterface.destroy.php
+     * @param string $session_id The session ID being destroyed.
+     * @return bool <p>
+     * The return value (usually TRUE on success, FALSE on failure).
+     * Note this value is returned internally to PHP for processing.
+     * </p>
+     * @since 5.4.0
+     */
+    public function destroy($session_id);
+
+    /**
+     * Cleanup old sessions
+     * @link http://php.net/manual/en/sessionhandlerinterface.gc.php
+     * @param int $maxlifetime <p>
+     * Sessions that have not updated for
+     * the last maxlifetime seconds will be removed.
+     * </p>
+     * @return bool <p>
+     * The return value (usually TRUE on success, FALSE on failure).
+     * Note this value is returned internally to PHP for processing.
+     * </p>
+     * @since 5.4.0
+     */
+    public function gc($maxlifetime);
+
+    /**
+     * Initialize session
+     * @link http://php.net/manual/en/sessionhandlerinterface.open.php
+     * @param string $save_path The path where to store/retrieve the session.
+     * @param string $name The session name.
+     * @return bool <p>
+     * The return value (usually TRUE on success, FALSE on failure).
+     * Note this value is returned internally to PHP for processing.
+     * </p>
+     * @since 5.4.0
+     */
+    public function open($save_path, $name);
+
+
+    /**
+     * Read session data
+     * @link http://php.net/manual/en/sessionhandlerinterface.read.php
+     * @param string $session_id The session id to read data for.
+     * @return string <p>
+     * Returns an encoded string of the read data.
+     * If nothing was read, it must return an empty string.
+     * Note this value is returned internally to PHP for processing.
+     * </p>
+     * @since 5.4.0
+     */
+    public function read($session_id);
+
+    /**
+     * Write session data
+     * @link http://php.net/manual/en/sessionhandlerinterface.write.php
+     * @param string $session_id The session id.
+     * @param string $session_data <p>
+     * The encoded session data. This data is the
+     * result of the PHP internally encoding
+     * the $_SESSION superglobal to a serialized
+     * string and passing it as this parameter.
+     * Please note sessions use an alternative serialization method.
+     * </p>
+     * @return bool <p>
+     * The return value (usually TRUE on success, FALSE on failure).
+     * Note this value is returned internally to PHP for processing.
+     * </p>
+     * @since 5.4.0
+     */
+    public function write($session_id, $session_data);
 
     /**
      * Update sesstion modify time.