Version 3 end of life
This version of Silverstripe CMS will not recieve any additional bug fixes or documentation updates. Go to documentation for the most recent stable version.

Sessions

Session support in PHP consists of a way to preserve certain data across subsequent accesses such as logged in user information and security tokens.

In order to support things like testing, the session is associated with a particular Controller. In normal usage, this is loaded from and saved to the regular PHP session, but for things like static-page-generation and unit-testing, you can create multiple Controllers, each with their own session.

set

	Session::set('MyValue', 6);

size restrictions as to how much you can save).

	// saves an array
	Session::set('MyArrayOfValues', array('1','2','3'));

	// saves an object (you'll have to unserialize it back)
	$object = new Object();
	Session::set('MyObject', serialize($object));
 

Once you have saved a value to the Session you can access it by using the get function. Like the set function you can use this anywhere in your PHP files.

	echo Session::get('MyValue'); 
	// returns 6

	$data = Session::get('MyArrayOfValues'); 
	// $data = array(1,2,3)

	$object = unserialize(Session::get('MyObject', $object)); 
	// $object = Object()

You can also get all the values in the session at once. This is useful for debugging.

	Session::get_all(); 
	// returns an array of all the session values.

Once you have accessed a value from the Session it doesn't automatically wipe the value from the Session, you have to specifically remove it.

	Session::clear('MyValue');

including form and page comment information. None of this is vital but clear_all will clear everything.

	Session::clear_all();

In certain circumstances, you may want to use a different session_name cookie when using the https protocol for security purposes. To do this, you may set the cookie_secure parameter to true on your config.yml

	Session:
	  cookie_secure: true

API Documentation