* @copyright walkor * @link http://www.workerman.net/ * @license http://www.opensource.org/licenses/mit-license.php MIT License */ namespace support\bootstrap; use Webman\Bootstrap; use Workerman\Protocols\Http; use Workerman\Protocols\Http\Session as SessionBase; use Workerman\Worker; use function config; use function property_exists; /** * Class Session * @package support */ class Session implements Bootstrap { /** * @param Worker|null $worker * @return void */ public static function start(?Worker $worker) { $config = config('session'); if (property_exists(SessionBase::class, 'name')) { SessionBase::$name = $config['session_name']; } else { Http::sessionName($config['session_name']); } SessionBase::handlerClass($config['handler'], $config['config'][$config['type']]); $map = [ 'auto_update_timestamp' => 'autoUpdateTimestamp', 'cookie_lifetime' => 'cookieLifetime', 'gc_probability' => 'gcProbability', 'cookie_path' => 'cookiePath', 'http_only' => 'httpOnly', 'same_site' => 'sameSite', 'lifetime' => 'lifetime', 'domain' => 'domain', 'secure' => 'secure', ]; foreach ($map as $key => $name) { if (isset($config[$key]) && property_exists(SessionBase::class, $name)) { SessionBase::${$name} = $config[$key]; } } } }