cookie.php 1.05 KB
Newer Older
1
<?php namespace Laravel\Session\Drivers; use Laravel\Crypter, Laravel\Cookie as C;
2

3
class Cookie extends Driver {
4

5
	/**
6 7 8 9 10 11 12
	 * The name of the cookie used to store the session payload.
	 *
	 * @var string
	 */
	const payload = 'session_payload';

	/**
13
	 * Load a session from storage by a given ID.
14
	 *
15
	 * If no session is found for the ID, null will be returned.
16
	 *
17 18 19
	 * @param  string  $id
	 * @return array
	 */
20
	public function load($id)
21
	{
22
		if (C::has(Cookie::payload))
23
		{
24
			return unserialize(Crypter::decrypt(C::get(Cookie::payload)));
25 26 27
		}
	}

28
	/**
29
	 * Save a given session to storage.
30
	 *
31
	 * @param  array  $session
32
	 * @param  array  $config
33
	 * @param  bool   $exists
34 35
	 * @return void
	 */
36
	public function save($session, $config, $exists)
37
	{
Phill Sparks committed
38
		extract($config, EXTR_SKIP);
39

40
		$payload = Crypter::encrypt(serialize($session));
41

42
		C::put(Cookie::payload, $payload, $lifetime, $path, $domain);
43 44
	}

45
	/**
46
	 * Delete a session from storage by a given ID.
47
	 *
48
	 * @param  string  $id
49 50
	 * @return void
	 */
51
	public function delete($id)
52
	{
53
		C::forget(Cookie::payload);
54 55 56
	}

}