Php 如何制作使用会话的框架无关编写器包?
我正在将我现有的CodeIgniter库反射到一个可重用和框架无关的composer包中 我的代码取决于CI的Php 如何制作使用会话的框架无关编写器包?,php,frameworks,composer-php,decoupling,Php,Frameworks,Composer Php,Decoupling,我正在将我现有的CodeIgniter库反射到一个可重用和框架无关的composer包中 我的代码取决于CI的会话和uri库和视图 我看着。 阅读 以下是我的想法: 创建会话接口 通过扩展接口创建使用CI会话的类 但我还是不知道怎么做 更新 我差一点就搞定了。正如上面链接的谈话中所讨论的,实现了相同的功能。在PHP中,有一个名为$\u SESSION的数组。您可以实现一个名为SessionHandler的类。在该类中,您应该创建一个方法来启动会话,另一个方法来销毁会话。您还可以创建方法来做其
会话
和uri
库和视图
我看着。
阅读
以下是我的想法:
- 创建会话接口
- 通过扩展接口创建使用CI会话的类
我差一点就搞定了。正如上面链接的谈话中所讨论的,实现了相同的功能。在PHP中,有一个名为
$\u SESSION
的数组。您可以实现一个名为SessionHandler
的类。在该类中,您应该创建一个方法来启动会话,另一个方法来销毁会话。您还可以创建方法来做其他事情。一个非常基本的实现如下所示:
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();
}
}
我同意Lajos Arpad的观点。您还可以在Aura.Auth和中查看示例。它不会首先启动会话,但只有在您调用start时才会启动会话。