class FileSessionHandler implements SessionHandlerInterface{    private $savePath;        /**     * 调用 session_start 调用     *     * @param string $savePath     * @param string $sessionName     * @return bool     */    function open($savePath, $sessionName)    {        echo "open.\n";        $this->savePath = $savePath;        if (!is_dir($this->savePath)) {            mkdir($this->savePath, 0777);        }        return true;    }        /**     * session 执行完毕调用     *     * @return bool     */    function close()    {        echo "close.\n";        return true;    }        /**     * 获取session数据调用     *     * @param string $id     * @return string     */    function read($id)    {        echo "read.\n";        return (string)@file_get_contents("$this->savePath/sess_$id");    }        /**     * session赋值调用     *     * @param string $id     * @param string $data     * @return bool     */    function write($id, $data)    {        echo "write.\n";        return file_put_contents("$this->savePath/sess_$id", $data) === false ? false : true;    }        /**     * 调用session_destory     *     * @param string $id     * @return bool     */    function destroy($id)    {        echo "destroy.\n";        $file = "$this->savePath/sess_$id";        if (file_exists($file)) {            unlink($file);        }        return true;    }        /**     * 过期调用     *     * @param int $maxlifetime     * @return bool     */    function gc($maxlifetime)    {        echo "gc.\n";        foreach (glob("$this->savePath/sess_*") as $file) {            if (filemtime($file) + $maxlifetime < time() && file_exists($file)) {                unlink($file);            }        }        return true;    }}