我正在将我现有的CodeIgniter库反射到一个可重用且与框架无关的编写器包中。
我的代码依赖于CI的session
和uri
库和视图。
我看过这个。读
我是这么想的:
- 创建会话接口
- 通过扩展接口 创建一个使用CI会话的类
但是我还是不太清楚怎么做。
更新我差点就搞定了。这里的实现与上面链接的演讲中讨论的相同。
在PHP中有一个名为$_SESSION
的数组。您可以实现一个class
,称为SessionHandler
。在class
中,您应该创建一个方法来启动会话,另一个方法来销毁会话。您还可以创建方法来做其他事情。一个非常基本的实现是这样的:
class SessionHandler {
private static $isStarted = false;
public static function startSession() {
if (!SessionHandler::$isStarted && session_status() === 1) {
SessionHandler::$isStarted = true;
session_start();
}
}
public function destroySession() {
session_destroy();
}
public function getElement($key, $defaultValue = null) {
return ((isset($_SESSION[$key])) ? ($_SESSION[$key]) : ($defaultValue));
}
public function setElement($key, $value) {
$_SESSION[$key] = $value;
}
public function __construct() {
SessionHandler::startSession();
}
}