session-interop / utils.arraysession
此包包含会话接口的实现
3.0.0
2016-12-29 17:38 UTC
Requires
- php: >=7.1.0
- session-interop/session-interop: ^3.0
Requires (Dev)
- phpunit/phpunit: ~5.0
README
数组会话
此包是 SessionInterface
的基本实现
安装
您可以通过 Composer 安装此包
composer require session-interop/utils.arraysession
该包遵循 SemVer 规范,并且不同版本之间将保持完全向后兼容。
可用
SessionArray
.
SessionInterface 的实现。
方法
__construct(&$array, $prefix = "")
构建对象。对象将使用 $array 存储元素。它使用 $array 的引用,因此当您使用 set($key)
和 remove($key)
时,$array 将被修改。如果提供了前缀,它将自动将所有 $key
前面加上前缀。
has($key)
验证 $key
是否存在于对象构建时注入的数组中。如果 key
不是一个字符串,则抛出异常。如果关联的值是 null
,则该方法返回 true
。
get($key)
获取与 $key
关联的值。如果没有找到键或键不是字符串,则抛出异常。
set($key, $val)
将值 $val
设置在键 $key
上。如果键不是字符串,则抛出异常。
remove($key)
销毁 $key
上的元素
SessionException
.
错误时使用的异常。如果键不是字符串,则抛出异常。
用法
编写使用会话接口的用户服务
UserService.php
namespace Usage; use Interop\Session\SessionInterface; class UserService { public function isConnected(SessionInterface $session) { if ($session->has("userId")) { return true; } return false; } public function login(SessionInterface $session, $userId) { if ($this->isConnected($session)) { return false; } $session->set("userId", $userId); return true; } public function logoff(SessionInterface $session) { if ($this->isConnected($session)) { $session->remove("userId"); return true; } return false; } }
使用实现
Index.php
use Interop\Session\Utils\ArraySession\ArraySession; use Usage\UserService; require_once("vendor/autoload.php"); session_start(); $userId = 1; $userService = new UserService(); $session = new ArraySession($_SESSION, "myprefix"); // Check if the user is connected if ($userService->isConnected($session)) { // logoff the user $userService->logoff($session); } else { // login the user $userService->login($session, $userId); }